Ich kenne keinen xargs
Option, die das tut, aber Sie können etwas Ähnliches mit einem Aufruf von bash -c
erreichen :
$ echo -e "line 1\nline 2\nline 3" | xargs bash -c 'echo "${@}" DONE' _
line 1 line 2 line 3 DONE
Beachten Sie, dass xargs
stellt die Zeilen nicht bereit als Argumente, auch wenn Sie -L
angeben . Vielleicht möchten Sie -d
verwenden um anzugeben, dass Zeilenumbrüche Elemente trennen (glaube ich nur gnu xargs). Vergleichen Sie Folgendes:
$ echo -e "line 1\nline 2\nline 3" |
xargs bash -c 'printf "<%s>\n" "${@}" DONE' _
<line>
<1>
<line>
<2>
<line>
<3>
<DONE>
$ echo -e "line 1\nline 2\nline 3" |
xargs -d\\n bash -c 'printf "<%s>\n" "${@}" DONE' _
<line 1>
<line 2>
<line 3>
<DONE>
Zeilenumbrüche in \nul
umwandeln Abschlusszeichen, dann verwenden Sie xargs -0
$ echo -ne 'line 1\nline 2\nline 3\n' | tr '\n' '\0' | xargs -0 -Ix echo x DONE
line 1 DONE
line 2 DONE
line 3 DONE