Posted by q3it on jueves, marzo 02, 2023 in Linux
Vamos a ver el comando xargs que convierte una entrada estándar en argumentos. Este comando genera una salida y esta salida va a ejecutar un comando y va a poner los argumentos. Este es un comando difícil de explicar teóricamente pero cuando lo veamos en consola veremos que es muy fácil de utilizar.
Otra forma de utilizar este comando es, comando xarg -i comado {}. Pasemos a la consola para entender mucho mejor esto. Imaginemos que nosotros tenemos un fichero llamado ficheros.txt.
Que contiene cuatro ficheros de Linux y nosotros lo que queremos es contar las líneas para cada uno de estos ficheros. Entonces nosotros lo podríamos hacer por cada fichero, pero a lo mejor este fichero se está modificando cada X tiempo y nosotros no podemos estar escribiendo manualmente.
Entonces nosotros tenemos un comando que va a tener una salida. Se lo pasamos a un pipe | y luego ejecutaremos nuestro comando xargs, con este comando lo que vamos a convertir son todos los ficheros contenidos en nuestro archivo en argumentos, entonces simplemente nosotros vamos a tener que escribir el comando wc con la opción -l, que sabemos que es para contar líneas y presionamos intro. Y lo que va a hacer es ejecutar el comando wc con cada uno de estos ficheros.
Entonces nosotros tenemos un comando que va a tener una salida. Se lo pasamos a un pipe | y luego ejecutaremos nuestro comando xargs, con este comando lo que vamos a convertir son todos los ficheros contenidos en nuestro archivo en argumentos, entonces simplemente nosotros vamos a tener que escribir el comando wc con la opción -l, que sabemos que es para contar líneas y presionamos intro. Y lo que va a hacer es ejecutar el comando wc con cada uno de estos ficheros.
Si nosotros ponemos echo veremos que comando se está ejecutando
Y vemos que se está ejecutando wc -l y por cada línea lo está convirtiendo en un argumento separados por espacio. Si nosotros utilizamos la opción menos -i veremos que simplemente está ejecutando comando pero no le está incluyendo el argumento.
El argumento por cada línea se va a meter en unas llaves {} y, vemos que ahora mismo va a ejecutar el comando con todos los argumentos que nosotros hemos pasado.
Si quitamos el echo vemos que la salida es parecida pero en este caso se ha ejecutado cuatro comandos.