Canalización 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 que la salida estándar de un comando se conecte a la entrada estándar de otro comando. Puede hacer que lo haga usando el carácter de canalización ‘|’

Pipe 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 oa través de la pantalla de visualización. 
Los conductos son unidireccionales , es decir, los datos fluyen de izquierda a derecha a través del conducto. 

Sintaxis: 
 

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

Ejemplo:  
1. Enumerar todos los archivos y directorios y darlos como entrada para más comandos. 

 

$ls -l | more 

Producción : 
 

El comando more toma la salida de $ls -l como su 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 da a more como entrada. Este comando no usa un disco para conectar la salida estándar de ls -l a la entrada estándar de more porque la tubería está implementada 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 (or more temp)
[contents of temp]
rm temp

Producción : 
 

La salida de los dos comandos anteriores es la misma. 

2. Use el comando sort y uniq para ordenar un archivo e imprimir valores únicos. 

 

$sort record.txt | uniq 

Esto ordenará el archivo dado e imprimirá solo los valores únicos. 
Producción : 
 

3. Use cabeza 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 a través del comando (head -7) y eso se ingresará en el comando (tail -5) que finalmente imprimirá las últimas 5 líneas de esas 7 líneas. 
Producción : 
 

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

 

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

Este comando selecciona archivos con extensión .txt en el directorio dado y busca un patrón como «programa» en el ejemplo anterior e imprime aquellos que tienen un programa en ellos. 
Producción : 
 

5. Use 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 los almacena en file2.txt e imprime el número total de líneas que coinciden con Rajat Dua  
Output: 
 

 

?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L
 

Publicación traducida automáticamente

Artículo escrito por rishabh1322 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *