por ejemplo, usando el comando
cat foo.txt | xargs -I{} -n 1 -P 1 sh -c "echo {} | echo"
El foo.txt
contiene dos líneas
foo
bar
El comando anterior no imprime nada.
por ejemplo, usando el comando
cat foo.txt | xargs -I{} -n 1 -P 1 sh -c "echo {} | echo"
El foo.txt
contiene dos líneas
foo
bar
El comando anterior no imprime nada.
cat foo.txt | xargs -J % -n 1 sh -c "echo % | bar.sh"
La parte difícil es que xargs realiza una invocación de subshell implícita. Aquí se invoca sh explícitamente y la tubería no se convierte en parte del transportador principal
cat foo.bar | wc -l
ycat foo.bar | xargs -J % -n 1 sh -c "echo % | wc -l"
-I
lugar de-J
; no hay-J
opción paraxargs
tiene una-J
opción que es equivalente a la-i
del linuxxargs
-J
no está definido en POSIX pero-I
es y tiene un uso diferente al de GNU.)Si desea procesar todas las líneas de foo.txt, deberá usar un bucle. Use
&
para poner el proceso en segundo planoSi su entrada contiene espacios, configure temporalmente el separador de campo interno en la nueva línea
fuente
xargs
OP utilizado.