GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erhalten Sie nur Namen vom Befehl find ohne Pfad

Verwenden Sie find trunk/messages/ -name "*.po" -exec basename {} .po \;

Beispiel und Erläuterungen:

Erstellen Sie einige Testdateien:

$ touch test1.po  
$ touch test2.po  
$ find . -name "*.po" -print
./test1.po  
./test2.po

Ok, Dateien werden gefunden, inklusive Pfad.

Führen Sie für jedes Ergebnis basename aus , und entfernen Sie den .po-Teil des Namens

$ find . -name "*.po" -exec basename \{} .po \;  
test1  
test2

Sie können -execdir verwenden Parameter, der die Datei ohne Pfad drucken würde, z. B.:

find . -name "*.po" -execdir echo {} ';'

Dateien ohne Erweiterungen:

find . -name "*.txt" -execdir basename {} .po ';'

Siehe:Warum verhält sich der GNU-Befehl find -execdir anders als BSD find?


Basierend auf einem Befehl, den ich hier gefunden habe:http://www.unixcl.com/2009/08/remove-path-from-find-result-in-bash.html

Sie können dies mit sed tun (was für mich schneller ausgeführt wurde als basename Ansatz):

find trunk/messages/ -name "*.po" | sed 's!.*/!!' | sed 's!.po!!'

Linux
  1. Wie bekomme ich nur Dateien, die nach einem Date mit Ls erstellt wurden?

  2. Nur Ziel von Symlink finden?

  3. So führen Sie den Befehl „find“ nur im aktuellen Verzeichnis und nicht in Unterverzeichnissen aus

  4. So schließen Sie ein Verzeichnis in find aus. Befehl

  5. Wie bekomme ich nur den Dateinamen mit Linux 'find'?

So finden Sie die öffentliche IP-Adresse über die Befehlszeile unter Linux heraus

So finden Sie die Anzahl der CPU-Kerne über die Befehlszeile in Linux

So suchen Sie nach Dateien über die Linux-Befehlszeile

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

Wie finde ich nur Verzeichnisse ohne Unterverzeichnisse?

Suchbefehl von PID