"XARGS es un comando bash que permite la ejecución de múltiples comandos en la misma línea. Ya sea que los comandos tomen parámetros o argumentos como entrada, pueden ejecutarse en la misma línea cuando se combinan con XARGS. Con XARGS, puede construir y ejecutar múltiples comandos a través de la entrada estándar, ya que XARGS puede tomar una entrada y convertirla a un argumento de comando para ser utilizado por el siguiente comando."
Para ayudarlo a comprender XARGS y cómo puede usarlo, este artículo dará múltiples ejemplos de uso del comando xargs. Echar un vistazo!
Cómo usar el comando xargs
La forma en que usa el comando xargs depende de lo que desee lograr. Si usa XARGS sin entrada, se eco de cualquier cosa que escriba en la terminal una vez que presione Ctrl + D
Manejo de archivos y directorios utilizando xargs
Si desea encontrar todos los archivos con una extensión dada, puede usar xargs. Tengamos un ejemplo de uso de LS con XARGS para archivos de texto.
$ Find . -nombre '*.txt '-type f | Xargs LS
En el comando anterior, estamos usando el encontrar comandar para buscar archivos en el directorio actual que tenga un .extensión txt.
Aquí está la salida
Si desea eliminar todos los archivos que encontramos usando el comando anterior, puede usar el comando a continuación.
$ Find . -nombre '*.txt '-type f | XARGS RM -F
El -T la bandera es para verbosa.
Supongamos que quería crear múltiples directorios donde agregue la entrada de la entrada estándar. Podríamos combinar mkdir con eco, Como en el ejemplo a continuación.
$ Echo 'Linux1 Tech2 DIR3 DIR2' | Xargs Mkdir
Si quisiera eliminar todos los directorios en el directorio actual, puede usar XARGS, como se muestra a continuación.
$ Find . -Tipo D | xargs rm -r
XARGS Lectura de información de un archivo
Utilizando el -a Flag, puede instruir a XARGS que lea elementos de un archivo, como en el caso a continuación.
Con el mismo ejemplo, podemos demostrar cómo combinar múltiples comandos usando XARGS. Para eso, usa el -I bandera.
Por ejemplo, podríamos usar el comando a continuación para leer el contenido de un archivo y crear un directorio usando cada cadena en el archivo.
$ Cat 1.txt | XARGS -I % MKDIR %
Puede llevar el comando más allá para hacer eco del contenido del archivo mientras crea el directorio agregando el comando de eco, Como se muestra abajo.
$ Cat 1.txt | xargs -i % sh -c 'echo %; mkdir %'
Usando xargs con grep
El comando GREP se usa para patrones coincidentes, y cuando desea buscar una cadena dada en varios archivos, puede usar XARGS para combinar encontrar con grep, donde la salida de encontrar se convertirá en la entrada a ser utilizada por grep.
Aquí hay un ejemplo en el que encontramos todos los archivos de texto que contienen la cadena "Linuxhint."
$ Find . -nombre '*.txt '| Xargs Grep 'Linuxhint'
Limitando la salida por línea
Supongamos que desea leer el contenido de un archivo. Puede limitar el número de salidas para cada línea utilizando el -norte opción.
Tengamos un ejemplo de números de impresión en un rango dado utilizando el sesco comando y limite la salida por línea a 4
$ SEQ 1 30 | xargs -n 4
Especificando el delimitador
Por defecto, XARGS asume un espacio en blanco como delimitador. Sin embargo, si necesita usar otro delimitador, debe usar el -d comando seguido del delimitador.
Aquí hay un ejemplo que usa un colon como delimitador cuando se trabaja con un archivo para leer su contenido y crear directorios utilizando las cadenas en el archivo.
Aquí están el contenido de nuestro archivo.
Ahora, ejecutemos el comando a continuación.
$ nombres de gatos.txt | xargs -d: | xargs -t mkdir
La salida sería:
El delimitador nulo
Si intentamos usar XARGS con archivos con espacio en blanco en los nombres, traería resultados incorrectos, ya que Xargs usa espacio en blanco como su delimitador. En tal caso, debemos usar el -0 Bandera, que indica a Xargs usar delimitador nulo. Además, necesitamos el -print0 Flag, que usa Find para indicar una lista separada.
Por ejemplo, supongamos que teníamos los archivos de imagen a continuación.
Si intentamos eliminar todos los archivos usando el comando a continuación, XARGS solo imprimiría los archivos de imagen sin espacio en su nombre, como se muestra a continuación.
$ Find . -nombre '*.png '-Type F | XARGS RM -F
Para superar esto, necesitamos usar la bandera -0 y el -print0.
$ Find . -nombre '*.png '-Type f -print0 | xargs -0 rm -f
Podemos verificar que hemos eliminado con éxito todos los archivos.
Conclusión
Esta guía ha cubierto el comando bash xargs en profundidad, dando ejemplos de cómo usarla para lograr varios aspectos. Haciendo referencia a los ejemplos presentados, puede implementar XARGS en su extremo para realizar varias tareas. Además, consulte la página del hombre para obtener XARGS para obtener más detalles de uso.