Cómo ejecutar comandos desde la entrada estándar usando Tee y XARGS en Linux

- 1763
- 337
- Sta. Enrique Santiago
Mientras usa la línea de comando, puede pasar directamente la salida de un programa (por ejemplo, una herramienta que genera cierta información o estadísticas del sistema) como entrada para otro programa (como herramientas de filtrado de texto o búsqueda de patrones como GREP, SED o AWK, para su posterior procesamiento), utilizando una tubería.
[También le puede gustar: Aprenda los conceptos básicos de cómo funciona la redirección de E/S (entrada/salida) de Linux]
Dos de las utilidades de línea de comandos más importantes que se pueden usar con tuberías para construir líneas de comando son:
- XARGS: lee flujos de datos de la entrada estándar, luego genera y ejecuta líneas de comando.
- Tee: se lee de la entrada estándar y escribe simultáneamente a la salida estándar y uno o muchos archivos. Es más un comando de redirección.
En este artículo simple, describiremos cómo construir y ejecutar múltiples comandos a partir de la entrada estándar usando tubería, tee, y Xargs Comandos en Linux.
La sintaxis más simple para usar un tubo, que es posible que ya haya visto en los comandos en muchos de nuestros tutoriales de Linux, es el siguiente. Pero puede construir una línea de comandos más larga con varios comandos.
$ Command1 Args | Command2 args o # command1 args | Comando2 Args | comando3 args ..
A continuación se muestra un ejemplo de uso de una tubería para pasar la salida del comando dmesg al comando de cabeza.
$ dmesg | cabeza

Cómo usar XARGS para ejecutar comandos
En este ejemplo, el segundo comando convierte la salida de la línea Muti en una sola línea usando XARGS.
$ LS -1 *.SH $ LS -1 *.sh | Xargs

Para contar el número de líneas/palabras/caracteres en cada archivo en una lista, use los comandos a continuación.
$ ls *.sh | XARGS WC -L #Count Número de líneas en cada archivo $ ls *.sh | XARGS WC -W #COUNT Número de palabras en cada archivo $ ls *.sh | XARGS WC -C #Count Número de caracteres en cada archivo $ ls *.sh | XARGS WC #Count Lines, palabras y caracteres en cada archivo

El siguiente comando encuentra y elimina recursivamente el directorio nombrado Todo
En el directorio actual.
$ Find . -nombre "Todo"-type d -print0 | xargs -0 /bin /rm -rf" "
El comando buscar con la opción -print0
La acción permite la impresión de la ruta completa del directorio en la salida estándar, seguida de un carácter nulo y -0 xargs
Flag se ocupa del espacio en los nombres de archivo.
Puedes encontrar otras prácticas comando xargs Ejemplos de uso en estos artículos:
- Cómo copiar un archivo a múltiples directorios en Linux
- Cambie el nombre de todos los archivos y nombres de directorio a minúsculas en Linux
- 4 formas de convertir su PNG a JPG y viceversa
- 3 formas de eliminar todos los archivos en un directorio, excepto uno o pocos archivos con extensiones
Cómo usar Tee con comandos en Linux
Este ejemplo muestra cómo enviar la salida del comando a la salida estándar y guardarla en un archivo; El siguiente comando le permite ver los procesos de ejecución más altos mediante la memoria más alta y el uso de la CPU en Linux.
$ PS -EO CMD, PID, PPID,%MEM,%CPU --sort = -%MEM | Cabeza | Tee Topprocs.Txt $ Cat Topprocs.TXT

Para agregar datos en un archivo existente, pase el -a
bandera.
$ PS -EO CMD, PID, PPID,%MEM,%CPU --sort = -%MEM | Cabeza | Tee -A Topprocs.TXT
Puede encontrar más información sobre el tee y Xargs Páginas del hombre.
$ hombre xargs $ man tee
Eso es todo! No olvide consultar nuestro artículo especial: A - Z Linux Comandos - Descripción general con ejemplos.
En este artículo, describimos cómo generar líneas de comando usando tuberías; comandos de xargs y tee. Puede hacer cualquier pregunta o compartir cualquier pensamiento a través del formulario de comentarios a continuación.
- « Cómo instalar el lenguaje de programación R en Linux
- Cómo usar el comando 'tee' en Linux [8 ejemplos útiles] »