xargs
es un comando de Unix que se puede usar para construir y ejecutar comandos desde la entrada estándar.
Importancia:
algunos comandos como grep pueden aceptar entradas como parámetros, pero algunos comandos aceptan argumentos, este es el lugar donde xargs entró en escena.
Sintaxis:
xargs [options] [command]
Opciones de xargs:
-0: los elementos de entrada terminan con un carácter nulo en lugar de espacios en blanco
-a file: lee los elementos del archivo en lugar de la entrada estándar
–delimiter = delim: los elementos de entrada terminan con un carácter especial
-E eof-str: establece el final de la string de archivo a eof-str
-I replace-str : reemplaza las ocurrencias de replace-str en los argumentos iniciales con nombres leídos de la entrada estándar
-L max-lines : usa como máximo max-lines líneas de entrada que no estén en blanco por comando línea.
-p: pregunta al usuario si debe ejecutar cada línea de comando y leer una línea desde la terminal.
-r: si la entrada estándar no contiene ningún espacio en blanco, no ejecute el comando
-x: sale si se excede el tamaño.
–ayuda: imprime el resumen de opciones para xargs y sale
–versión: imprime el número de versión. de xargs y salida
Ejemplo :
Ejemplo:
a continuación se muestra el programa C, que lee un archivo de texto «test.txt» y luego usa la salida de este programa como entrada para tocar el comando.
contenido del archivo de texto “test.txt”
file1 file2 file3 file4
// C program to read contents of file #include <stdio.h> // Driver Code int main(){ int c; FILE *file; // open file test.txt file = fopen("test.txt", "r"); if (file) { // read file line-by-line until // end of file while ((c = getc(file)) != EOF) putchar(c); fclose(file); } return 0; }
Producción :
file1 file2 file3 file4
Ahora, use la salida de ./a.out como entrada para tocar el comando
Uso de comandos con opciones:
xargs --version
Imprime el número de versión del comando xargs y luego sale.
Producción :
xargs (GNU findutils) 4.7.0-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
xargs -a test.txt
Mostrará el contenido del archivo.
file1 file2 file3 file4
xargs -p -a test.txt
La opción -p solicita confirmación antes de ejecutar cada línea de comando. Solo ejecuta la línea de comando si la respuesta comienza con ‘y’ o ‘Y’
Producción :
# xargs -p -a test.txt echo file1 file2 file3 file4 ?...y file1 file2 file3 file4 # xargs -p -a test.txt echo file1 file2 file3 file4 ?...n
xargs -r -a test.txt
Ahora, supongamos que el archivo «test.txt» está vacío y se ejecuta el comando anterior, la opción -r garantiza que si la entrada estándar está vacía, entonces el comando no se ejecuta, por lo que el comando anterior no producirá ningún resultado,
pero, si el comando anterior se ejecuta sin la opción -r, producirá una línea en blanco como salida.
Vea la imagen a continuación como ejemplo:
Referencias:
1) xargs wikipedia
2) necesidad de xargs
3) página manual de xargs