pipe
138. Tuberías (pipes)
Podríamos representar cada programa como una «caja negra» que tiene una entrada y una salida que se pueden unir entre ellos.
El ejemplo que utilizamos se encuentraesquematizado en la figura Figura 48. Esquema de entrada y salida estándar del ejemplo siendo la entrada estándar el teclado y la salida estándar «el terminal» o por simplicidad la pantalla.
Figura 48.Esquema de entrada y salida estándar del ejemplo
Vamos a suponer un caso ficticio donde necesitamos todas las definiciones de cada palabra en un texto. Primero las ordenamos alfabéticamente, luegoutilizamos un comando ficticio llamado diccionario que toma palabras de la entrada estándar y las reescribe junto a su significado en la salida estándar.
Su esquema se ve en la figura Figura 49.Esquema de entrada y salida estándar del ejemplo 2. En este caso nombramos por separado las entradas y salidas estándares de los dos programas, pero la «unión» entre ambos programas se puede considerarcomo un sólo «tubo».
Figura 49. Esquema de entrada y salida estándar del ejemplo 2
En ese tubo, el flujo está en un estado intermedio, donde está ordenado, pero no tiene las definiciones dediccionario.
En la línea de comandos esto se escribe de la siguiente manera:
$ sort | dicccionario
Donde el caracter | representa la conexión entre la salida estándar de un programa y la entrada estándarde otro.
Con este fuerte y simple concepto se pueden concatenar gran cantidad de programas como si fuera una línea de producción en serie para generar resultados complejos.
Para mejorar nuestroejemplo sacaremos las palabras repetidas, antes de mostrarlas con definiciones. Suponiendo que exista un programa llamado sacar-repetidas, la línea de comando sería:
$ sort | sacar-repetidas | diccionarioSimple, utilizando herramientas sencillas logramos algo un poco más complicado. El inconveniente que tenemos en este ejemplo es que hay que escribir aquello a procesar. Normalmente queremos...
Regístrate para leer el documento completo.