extrahieren von Dateinamen aus einem Pfad in der csh-shell — aus der Liste der Dateien
Gewusst wie: extrahieren von Dateinamen aus dem Pfad; ich habe eine Liste von Dateien. Ich bin mit der csh-shell und awk, sed, perl installiert.
/dfgfd/dfgdfg/filename
sollte mir
mit dem Namen
Habe ich versucht basename:
find $PROJDIR -name '*.c' -o -name '*.cc' -o -name '*.h'
| xargs grep -l pattern | xargs basename
und es gab mir die folgende Fehlermeldung:
basename: zu wenige Argumente
Try `basename --help' für mehr Informationen.
thx
InformationsquelleAutor vehomzzz | 2009-09-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem standard-Programm
basename
tut, was Sie wollen:basename
funktioniert nur auf einer single mit dem Namen zu einer Zeit. Ersetzen Sie den letzten Teil vonxargs -n1 basename
.Versuchen Sie auch
-r
zu vermeiden, läuft einbasename
ohne Argumente, wenn es keine Spiele."basename" - " wird die Verarbeitung mehrerer Eingänge.
InformationsquelleAutor Thomas
Diese Art der Abhilfe für mich gearbeitet. Sie sagten, Sie hatten von perl, so dass dieser ausgeführt werden soll. Es ersetzt alle nonspace text bis zu den letzten /nichts (effektiv löschen).
InformationsquelleAutor FModa3
Ok ich fand eine schöne Lösung mit AWK:
InformationsquelleAutor vehomzzz
versuchen, diese !!
als basename accepet single-path-parameter als argument, so dass wir Kraft xargs, um es zu teilen.
InformationsquelleAutor ryan