logo

Tubería en Unix o Linux

Una canalización es una forma de redirección (transferencia de salida estándar a algún otro destino) que se utiliza en Linux y otros sistemas operativos similares a Unix para enviar la salida de un comando/programa/proceso a otro comando/programa/proceso para su posterior procesamiento. . Los sistemas Unix/Linux permiten conectar la salida estándar de un comando a la entrada estándar de otro comando. Puedes hacerlo usando el carácter de barra vertical. ‘|’ .

cómo bloquear anuncios de youtube en android

La tubería se usa para combinar dos o más comandos, y en esto, la salida de un comando actúa como entrada para otro comando, y la salida de este comando puede actuar como entrada para el siguiente comando, y así sucesivamente. También se puede visualizar como una conexión temporal entre dos o más comandos/programas/procesos. Los programas de línea de comandos que realizan el procesamiento posterior se denominan filtros.



Esta conexión directa entre comandos/programas/procesos les permite operar simultáneamente y permite que los datos se transfieran entre ellos continuamente en lugar de tener que pasarlos a través de archivos de texto temporales o a través de la pantalla.
Las tuberías son unidireccionales, es decir, los datos fluyen de izquierda a derecha a través de la tubería.

Sintaxis:

command_1 | command_2 | command_3 | .... | command_N>

Ejemplo de tubería en Unix o Linux

1. Enumere todos los archivos y directorios y proporciónelos como entrada para el comando `grep` usando tuberías en Linux

ls | grep file.txt>

ls | archivo grep.txt



En este primero, usamos `ls` para enumerar todos los archivos y directorios en el directorio actual, luego pasamos su salida al comando `grep` y buscamos el nombre de archivo `file.txt`. La salida del comando ls se envía a la entrada del comando grep y el resultado es una lista de archivos que coinciden con el término de búsqueda.

2. Enumere todos los archivos y directorios y proporciónelos como entrada para 'más' comandos usando tuberías en Linux.

$ ls -l | more>

$ls-l | más

El comando more toma la salida de $ ls -l como entrada. El efecto neto de este comando es que la salida de ls -l se muestra una pantalla a la vez. La tubería actúa como un contenedor que toma la salida de ls -l y se la entrega a more como entrada. Este comando no utiliza un disco para conectar la salida estándar de ls -l a la entrada estándar de more porque la tubería se implementa en la memoria principal.
En términos de operadores de redirección de E/S, el comando anterior es equivalente a la siguiente secuencia de comandos.



$ ls -l ->temp more -> temp (o más temp) [contenido de temp] rm temp>
temperatura

ls -l -> temperatura

El resultado de los dos comandos anteriores es el mismo.

3. Ordene una lista de archivos por tamaño usando tuberías en Linux

ls -l sort -k 5>
ls -l sort -k 5

inicializador de diccionario c#

Este comando enumera todos los archivos en el directorio actual y luego usa el comando `sort` para ordenar la lista por la quinta columna, que representa el tamaño del archivo.

4. Utilice los comandos sort y uniq para ordenar un archivo e imprimir valores únicos usando tuberías en Linux

$ sort record.txt | uniq>

Esto ordenará el archivo proporcionado e imprimirá solo los valores únicos.

ordenar registro.txt | único

str.reemplazar en java

5. Utilice encabezado y cola para imprimir líneas en un rango particular en un archivo.

$ cat sample2.txt | head -7 | tail -5>

Este comando selecciona las primeras 7 líneas hasta el comando (head -7) y eso se ingresará al comando (tail -5) que finalmente imprimirá las últimas 5 líneas de esas 7 líneas.

muestra de gato2.txt | cabeza -7 | cola -5

6. Utilice ls y find para enumerar e imprimir todas las líneas que coincidan con un patrón particular en archivos coincidentes.

$ ls -l | find ./ -type f -name '*.txt' -exec grep 'program' {} ;>

Este comando selecciona archivos con .TXT extensión en el directorio dado y busca patrones como el programa en el ejemplo anterior e imprime aquellos que tienen programa en ellos.

ls -l | buscar ./ ​​-tipo f -nombre *.txt -exec grep programa {} ;

7. Utilice los comandos cat, grep, tee y wc para leer la entrada particular del usuario y almacenarla en un archivo e imprimir el recuento de líneas.

$ cat result.txt | grep 'Rajat Dua' | tee file2.txt | wc -l>

Este comando selecciona Rajat Dua y guárdelos en file2.txt e imprima el número total de líneas coincidentes Rajat Dua

resultado del gato.txt | grep Rajat Dua | camiseta archivo2.txt | baño -l

botón central css

8. ¿Cómo puedo redirigir la salida de un comando canalizado a un archivo en Unix o Linux?

Podemos usar el operador de redirección `>` para redirigir la salida de un comando canalizado.

Por ejemplo:

Si tengo un nombre de archivo `file.txt` y quiero redirigirlo a un nombre de archivo `geeks.txt`.

 ls | grep 'file'>frikis.txt>
frikis.txt

ls | grep 'archivo'> geeks.txt

Conclusión

Piping es una característica poderosa en los sistemas operativos Unix y Linux que nos ayuda a vincular diferentes comandos para realizar tareas complejas de manera rápida y eficiente. En este artículo hemos aprendido cómo podemos redirigir la salida de un comando a la entrada de otro comando. En general, podemos decir que al utilizar tuberías podemos ahorrar tiempo, mejorar la productividad y reducir el uso de espacio en disco.