xargs
es la solución más flexible para dividir la salida en argumentos de comando.
También es muy legible y fácil de usar debido a su parametrización simple.
El formato es xargs -n $NUMLINES mycommand
.
Por ejemplo, para echo
cada línea individual en un archivo /tmp/tmp.txt
que haría:
cat /tmp/tmp.txt | xargs -n 1 echo
O a diff
cada par sucesivo de archivos que aparecen como líneas en un archivo de nombre anterior que haría :
cat /tmp/tmp.txt | xargs -n 2 diff
El -n 2
instruye xargs
para consumir y pasar como argumentos separados dos líneas de lo que ha tocado la flauta en él a la vez.
Puede personalizar xargs
para dividir en delimitadores además de carriage return/newline.
Utilice man xargs
y google para obtener más información sobre el poder de esta versátil utilidad.
+1 para evitar el uso inútil de 'cat'. –
+1 para el acceso de variables fuera del bucle – former
+1 para la tubería en el bucle while. Me gustaría señalar a la audiencia, sin embargo, que uno puede simplemente llamar 'mientras lee; no utilizar la variable * REPLY * incorporada. –