Extrahieren Sie bestimmte Dateipfade in Ordnern basierend auf Linux-Befehlen

Extrahieren Sie bestimmte Dateipfade in Ordnern basierend auf Linux-Befehlen

In letzter Zeit besteht der Bedarf, automatisch nach bestimmten Dateien in einem bestimmten Ordner zu suchen, und der Dateipfad und der Dateiname müssen separat gespeichert werden. Obwohl dies mithilfe von Pythons Walk erreicht werden kann, fühlt es sich etwas kompliziert an. Daher möchte ich sehen, ob die integrierten Befehle von Linux diese Aufgabe erledigen können.

Umfeld

Die zu durchsuchende Verzeichnisstruktur ist wie folgt

. |____test | |____test2.txt | |____test.py | |____test.txt | |____regex.py |____MongoDB | |____.gitignore | |____cnt_fail.py | |____db

Ziel 1: Alle py-Dateinamen abrufen

Wenn Sie nur find . -name '*.py' zum Suchen verwenden, ist das Ergebnis der Pfad

./test/test.py
./test/regex.py
./MongoDB/cnt_fail.py

Wenn wir nur den Dateinamen benötigen, können wir den von Linux bereitgestellten Befehl basename verwenden

Um alle Suchergebnisse von find mit Basisnamen zu verarbeiten, müssen wir den Parameter -exec von find verwenden.

Der letzte Befehl lautet:

finde . -name '*.py' -exec basename {} \;

Ergebnis:

test.py
regex.py
cnt_fail.py

Die {} werden in Verbindung mit der Option -exec verwendet, um alle Ergebnisse abzugleichen und dann ihre Dateinamen zu extrahieren.

Ziel 2: Alle py-Dateipfade abrufen, Duplikate entfernen und das führende Zeichen "./" löschen

Linux hat auch einen Befehl dirname, um den Dateipfad zu erhalten

Ändern Sie den vorherigen Befehl leicht, um alle Dateipfade anzuzeigen

finde . -name '*.py' -exec dirname {} \;
Suchergebnisse:

./prüfen
./prüfen
./MongoDB

Wir können sehen, dass es doppelte Pfade gibt. Um Duplikate in Linux zu entfernen, können wir sort verwenden und den Parameter -u hinzufügen. Der Parameter -u wird verwendet, um Duplikate in den Sortierergebnissen zu entfernen. Wir müssen die Ausgabe des vorherigen Befehls als Eingabe an sort übergeben und denken dabei natürlich an Pipes.

Der Pipe-Befehlsoperator lautet: |, der nur die korrekten Ausgabeinformationen verarbeiten kann, die vom vorherigen Befehl übermittelt wurden, d. h. die Standardausgabeinformationen.
Eine direkte Weiterverarbeitung der Fehlermeldungen ist nicht möglich. Es wird dann als Standardeingabe an den nächsten Befehl übergeben.

Der Befehl nach dem Hinzufügen von sort lautet

find . -name '*.py' -exec dirname {} \; | sort -u

Die laufenden Ergebnisse sind:

./MongoDB
./prüfen

Zum Schluss löschen wir mit cut das ./ Zeichen vor jedem Pfad. Der Parameter -c3- bedeutet, dass der Teilstring vom dritten Zeichen des Strings (Startposition ist 1) bis zum Ende extrahiert wird. Der abschließende Befehl lautet:

find . -name '*.py' -exec dirname {} \; | sort -u | cut -c3-

Laufergebnisse:

MongoDB
prüfen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Linux-Befehl zum Dekomprimieren eines RPM-Pakets und Einführung in die Verwendung des RPM-Befehls
  • Zusammenfassung von zehn Linux-Befehlsaliasen, die die Effizienz verbessern können
  • Der Unterschied und die Verwendung von Strg+z, Strg+c und Strg+d in Linux-Befehlen
  • Beispielcode eines Linux-Befehls zum Erstellen eines Datumsordners oder einer Datumsdatei
  • So speichern Sie die Befehlsausgabe in einer Datei im Linux-Terminal
  • Die umfassendste Sammlung häufig verwendeter Linux-Befehle (mit Beispielen)

<<:  Übung zum Hochladen von Element-Avataren

>>:  Zusammenfassung der gemeinsamen Updatemethode für MySQL-Updates mehrerer Tabellen

Artikel empfehlen

js implementiert dynamisch Operationen zum Hinzufügen und Löschen von Tabellen

In diesem Artikelbeispiel wird der spezifische Co...

Neue Blockbereichsfunktion von JavaScript ES

Inhaltsverzeichnis 1. Was ist Blockbereich? 2. Wa...

Bootstrap 3.0 Studiennotizen Rastersystemprinzip

Durch die kurze Einführung in den beiden vorherig...

CSS-Rand halb oder teilweise sichtbarer Implementierungscode

1. Verwenden Sie Pseudoklassen, um die Hälfte des...

Die Darstellung und Öffnungsmethode eines Hyperlinks

<br />Verwandte Artikel: So rufen Sie einen ...

CSS-Beispielcode zur Implementierung von Schiebetüren

Durch die sogenannte Sliding Door-Technologie läs...

Rankings zur Benutzerfreundlichkeit chinesischer Websites

<br />Die Benutzererfahrung wird von chinesi...

So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

Einführung Das mysql-utilities-Toolset ist eine S...

Die umfassendste Sammlung von Front-End-Interviewfragen

HTML und CSS 1. Verständnis und Kenntnisse von WE...

Detaillierte Erklärung zu JavaScript Anti-Shake und Throttling

Inhaltsverzeichnis Entprellen Gaspedal Zusammenfa...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.6.22

In diesem Tutorial wird der spezifische Code der ...