GNU/Linux >> Tutoriales Linux >  >> Linux

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

Mientras usa la línea de comando, puede pasar directamente la salida de un programa (por ejemplo, una herramienta que genera información o estadísticas del sistema) como entrada para otro programa (como filtrado de texto o herramientas de búsqueda de patrones como grep, sed o awk, para su posterior procesamiento), utilizando una canalización.

Lea también :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 comando más importantes que se pueden usar con canalizaciones para crear líneas de comando son:

  • xargs – lee flujos de datos de entrada estándar, luego genera y ejecuta líneas de comando.
  • tee – lee desde la entrada estándar y escribe simultáneamente en la salida estándar y en uno o varios archivos. Es más un comando de redirección.

En este sencillo artículo, describiremos cómo compilar y ejecutar varios comandos a partir de una entrada estándar utilizando tuberías. , camiseta y xargs comandos en Linux.

La sintaxis más simple para usar una tubería , que es posible que ya haya visto en los comandos de muchos de nuestros tutoriales de Linux, es el siguiente. Pero puede crear una línea de comando más larga con varios comandos.

$ command1 args | command2 args 
OR
# command1 args | command2 args | command3 args ...

A continuación se muestra un ejemplo del uso de una canalización para pasar la salida del comando dmesg al comando head.

$ dmesg | head

Cómo usar xargs para ejecutar comandos

En este ejemplo, el segundo comando convierte la salida multilínea 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 de una lista, utilice los siguientes comandos.

$ ls *.sh | xargs wc -l	    #count number of lines in each file
$ ls *.sh | xargs wc -w	    #count number of words in each file
$ ls *.sh | xargs wc -c	    #count number of characters in each file
$ ls *.sh | xargs wc	    #count lines, words and characters in each file

El siguiente comando encuentra y elimina recursivamente el directorio llamado All en el directorio actual.

$ find . -name "All" -type d -print0 | xargs  -0 /bin/rm -rf "{}"

El comando de búsqueda con la opción -print0 La acción habilita 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.

Puede encontrar otros comandos xargs prácticos ejemplos de uso en estos artículos:

  1. Cómo copiar un archivo a varios directorios en Linux
  2. Renombrar todos los archivos y directorios a minúsculas en Linux
  3. 4 formas de convertir por lotes su PNG a JPG y viceversa
  4. 3 formas de eliminar todos los archivos de un directorio excepto uno o algunos 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 principales procesos en ejecución según el mayor uso de memoria y CPU en Linux.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee topprocs.txt
$ cat  topprocs.txt

Para agregar datos en un archivo existente, pase -a bandera.

$ ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head | tee -a topprocs.txt 

Puedes encontrar más información en tee y xargs páginas man.

$ man xargs
$ man tee

¡Eso es todo! No olvide consultar nuestro artículo especial:Comandos Linux A - Z - Descripción general con ejemplos.

En este artículo, describimos cómo generar líneas de comando usando canalizaciones; Comandos xargs y tee. Puede hacer cualquier pregunta o compartir sus pensamientos a través del formulario de comentarios a continuación.


Linux
  1. 10 usos asombrosos y misteriosos de (!) símbolo u operador en los comandos de Linux

  2. Cómo guardar comandos de Linux y usarlos bajo demanda

  3. Comandos de Linux:trabajos, bg y fg

  4. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  5. Cómo instalar MongoDB desde la fuente (y usando YUM) en Linux

Cómo corregir errores y errores tipográficos en comandos de consola anteriores en Linux

Cómo ejecutar aplicaciones de Linux en Windows 10 y 11 usando WSL

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo ejecutar múltiples comandos de Linux en un solo comando

Cómo clonar y restaurar una partición de Linux usando el comando dd

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux