Eu não sei de uma opção xargs
que fará isso, mas você pode conseguir algo semelhante com uma invocação de bash -c
:
$ echo -e "line 1\nline 2\nline 3" | xargs bash -c 'echo "${@}" DONE' _
line 1 line 2 line 3 DONE
Observe que xargs
não fornece as linhas como argumentos, mesmo se você especificar -L
. Você pode querer usar -d
para especificar que a nova linha separa itens (apenas gnu xargs, acredito). Compare o seguinte:
$ 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>