Verwenden Sie beispielsweise den Befehl
cat foo.txt | xargs -I{} -n 1 -P 1 sh -c "echo {} | echo"
Das foo.txt
enthält zwei Zeilen
foo
bar
Der obige Befehl gibt nichts aus.
Verwenden Sie beispielsweise den Befehl
cat foo.txt | xargs -I{} -n 1 -P 1 sh -c "echo {} | echo"
Das foo.txt
enthält zwei Zeilen
foo
bar
Der obige Befehl gibt nichts aus.
cat foo.txt | xargs -J % -n 1 sh -c "echo % | bar.sh"
Der schwierige Teil ist, dass xargs implizite Subshell-Aufrufe ausführt. Hier wird sie explizit aufgerufen und das Rohr wird nicht Teil des übergeordneten Förderers
cat foo.bar | wc -l
undcat foo.bar | xargs -J % -n 1 sh -c "echo % | wc -l"
-I
statt-J
; Es gibt keine-J
Option zuxargs
have-J
Option, die-i
der Linux -Version entsprichtxargs
-J
-I
Wenn Sie alle Zeilen von foo.txt verarbeiten möchten, müssen Sie eine Schleife verwenden. Verwenden Sie
&
diese Option , um den Prozess in den Hintergrund zu stellenWenn Ihre Eingabe Leerzeichen enthält, setzen Sie das interne Feldtrennzeichen vorübergehend auf die neue Zeile
quelle
xargs
OP nachgeschlagen .