viernes, 19 de febrero de 2010

xargs

Tras cometer algunos errores, empiezo a apreciar la real utilidad de xargs.
Harta información en http://systemadmin.es/2009/04/uso-de-xargs-herramientas-unix-ii.

En general:
Crea una lista con los argumentos anteriores, para pasarlas al comando siguiente
Por ejemplo:
rm * es equivalente a ls * | rm xargs

Opciones importantes
-t: Muestra el comando con las opciones y luego lo ejecuta.
-n: Permite definir el número de argumentos que vemos a pasar a cada comando.
-I: Permite definir donde se van a definir los parámetros.
-P: Permite definir el número de procesos paralelos a lanzar al mismo tiempo.

Por ejemplo:

ls *.c3p0 | xargs -p python ejecutar.py
Muestra python ejecutar.py uno.c3p0 dos.c3p0 tres.c3p0 (y lo ejecuta)

ls *.c3p0 | xargs -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta)

ls *.py | xargs -I python ARG uno.c3p0
(para aplicar varios archivos python sobre el archivo uno.c3p0).

ls *.c3p0 | xargs -P3 -n1 python ejecutar.py
Muestra python ejecutar.py uno.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py dos.c3p0 (y lo ejecuta sin esperar finalización)
Muestra python ejecutar.py tres.c3p0 (y lo ejecuta sin esperar finalización)

No hay comentarios:

Publicar un comentario