Ich habe ein Verzeichnis und viele weitere Unterverzeichnisse wie das folgende -
file with spaces.txt
filewithsuperlonglines.txt
ordinaryfile.txt
binaryfile.bin
Der Befehl -
finden . -Typ f -print0 | xargs -0 Datei | grep text | grep -v long | cut -d: -f1
Erzeugt die richtige Liste von Dateien (dh Textdateien, die keine sehr langen Zeilen enthalten)
./file with spaces.txt
./ordinaryfile.txt
Aber wenn ich am Ende des Befehls ein weiteres xargs hinzufüge, erhalte ich Fehler -
finden . -Typ f -print0 | xargs -0 Datei | grep text | grep -v long | ausschneiden -d: -f1 | xargs -0 awk -f someprocessing.awk
gawk: someprocessing.awk:3: fatal: cannot open file `./file' for reading (No such file or directory)
Der Inhalt von someprocessing.awk ist nicht relevant, da ich den gleichen Fehler erhalte, wenn ich cat
stattdessen den Befehl verwende.
Wie erhalte ich den Befehl nach der letzten Pipe, um mit Dateien mit Leerzeichen im Namen zu arbeiten?