Pipe operator es un operador que permite tomar la salida de un comando y pasarla como entrada de otro comando. Aprendamos más comandos que te van a ayudar.
Comandos de pipe operator
Unir cadenas de texto (cat)
Si queremos crear una lista de los archivos de varias carpetas, podemos usar cat para concatenar la salida de varios de ellos.
Por ejemplo, vamos a crear uno que tenga la lista de los archivos contenidos en la carpeta "Images" y "SecretosDeEstado".
Crear un archivo con base en una salida (tee)
Si queremos guardar la lista creada anteriormente, podemos pasar esa salida por medio de un pipe operator al comando tee, el cual creará un archivo con esa salida.
cat images.txt secretosDeEstado.txt| tee archivos.txt
De momento parece lo mismo, pero si inspeccionamos el archivo "archivos.txt" veremos esto:
Por cierto, para ver los archivos usa el comando head , para que puedas ver la línea de comandos. Para inspeccionar archivos el comando less es mucho más efectivo.
Organizar archivos con sort
Puede ser algo complicado encontrar un archivo dentro de la lista, por lo que lo podemos organizar alfabéticamente una salida con el comando sort.
ls | sort | tee archivosHome.txt
Aquí lo que estamos haciendo es:
Listar los archivos
Organizar los archivos
Crear un archivo llamado archivosHome.txt, con las salidas anteriores
Tabla de comandos pipe operator
Comando
Función
sort
Organiza allfabéticamente una salida
cat
Concatena dos entradas
tee
Crea un archivo en base a una entrada
Contribución creada con los aportes de: Miguel Gonzalez.
¡Los pipe operators de Linux son de lo mejor! En serio puedes hacer cosas muy increíbles con ellos. Por ejemplo, yo llegué a hacer un comando super poderoso que me consultaba todos los archivos que tenía guardados en Amazon S3 y me los ponía en varias líneas ordenaditos (porque Amazon te los devuelve con demasiada información desordenada), es más aquí se los enseño (no te asustes por esto, es algo un poquito avanzado, pero quiero que veas cómo usando pipe operators puedes hacer cosas increíbles):
Aquí uso el comando awk (uno de los comandos que ya te expliqué en otra clase 👀). Claro, no necesitas llegar a hacer cosas complejas para usar pipe operators, puedes hacer cosas sencillas, por ejemplo, buscar tus paquetes instalados en tu computadora y filtrar por alguno específico:
.
.
En este caso, el comando dpkg --get-selections te dice qué paquetes tienes instalados en Ubuntu, y el comando grep hace el filtro (little spoiler, lo verás más a profundida más adelante) 👀.
.
¡Pero imagina todo lo que puedes hacer con el pipe operator! Lo mejor es que si logras dominarlo, aprenderás a automatizar procesos en la terminal 💚.
gracias
Excelente aporte, muchas gracias por la información
🐱💻 El pipe operator permite enviar la salida de un comando como entrada del siguiente.
Justo lo que necesitaba, gracias.
gracias, estoy batallando para entender la funcionalidad de Pipe Operator
Redirecciones: pipe operator.
Es uno de los operadores mas útiles que existen, ya que nos permite poner varios comandos, tales que la salida de uno es la entrada del siguiente 📤.
echo <texto> genera un stdout con el texto que tenemos.
cat <archivo1> <archivo2> muestra los dos archivos concatenados 💩.
El pipe operator | hace que el stdout de un comando sea el stdin de otro comando. Por ejemplo ls -lh | less
tee hace algo parecido a >, pero dentro de los pipe´s, por ejemplo ls -lh | tee output.txt |less . Se puede poner en medio, pero se ignora porque se sigue pasando.
cowsay "Texto" es un comando que imprime una vaca que dice algo JAJAJAJAJ 🐮.
echo "Texto" | lolcat esto lo imprime con colores bonitos 😂.
Gracias por tu aporte, me sirvió bastante pues no entendí muy bien esta clases, pero con tu resumen me ha quedado mucho mas claro :D
La verdad tu resumen fue luz, me perdí un poco pero al leerte me quedo mas que claro, gracias por el aporte
Pipe operator |
💡Los filtros son el procesos de tomar una entrada de flujo y, realizando una conversión, es mandado a la salida de otro stream.
.
Definición
Un pipeline sirve en la construcción de comandos para generar filtros.
.
Pipeline stdout a stdin
Usamos el operado pipe | entre dos comando para direccionar el stdout del primero con el stdin del segundo. Cualquier comando, entre pipes, puede tener opciones o argumentos para construir filtros complejos.
Una de las ventajas de los pipes, en Linux y UNIX, es de que pueden variar y generar salidas intermedias de diferentes procesos, generando todo un trace de flujo de información.
Gracias, me quedo más claro
Excelente!! Muchas Gracias por el aporte.
Hola
Como estuvieron comentando algunos compañeros, si queremos ver la lista de los dibujos que podemos generar dentro de la terminal tenemos que hacer lo siguiente:
También, aprovecho para compartirles algunos dibujos:
Espero que se diviertan así como yo también lo hice!
Saludos
Buen aporte, gracias
gracias
Prueben esto para darle animación:
cowsay -f dragon-and-cow "Like si te quedaste jugando con lolcat un rato!" | lolcat -F 12 -d 5 -a
total bro
Hola
Un breve comentario: si desean obtener la animación compartida por Liliana, tal vez sea necesario borrrar el !
Así tuve que hacerlo en mi caso.
Saludos
Si te interesa el ++procesamiento paralelo++ para mejorar tus algoritmos y pasar parámetros de manera automatizada, el uso del pipe "|" y del ampersan "&" se volverán más poderosos que Superman XD!!!
.
Ejemplo: competir que algoritmo es más rápido o eficaz:
.
Como ya vimos, el "&" al final de un comando crea un hilo por cada comando separado por un "&" y veríamos que programa termina primero, MUY INTEREZANTE.
¡Qué buen uso y aporte! Gracias Gerardo
Gracias por compartirlo, implementando las redirecciones en python, confirmo interesante aporte.
Vamos viendo que tal ✌️😁
Cómo lo hiciste?
Geniaaaaaal
Sin duda el pipe operator (|) es una gran herramienta y puedes hacer grandes cosas.
En mi trabajo se llegan a monitorear servicios de transacciones que se ejecutan en un Banco. Pero estos LOGs, luego llegan a pesar mucho, ya que se registra la información de todos los días, así que al descargarlos tarda mucho. Y si solo quiero extraer la información de cierto día, ejecuto un comando para obtener el número de línea donde se encuentra la información que quiero, y de ahí solo extrer la información necesaria y pasarla a un archivo. Este archivo que se crea pesa menos que el archivo original.
Excelente aporte!!!!!!
Aplicando lo aprendido:
un verso:
Cosa seria esa vaca!
8. Redirecciones: pipe operator
Les comparto los comandos aprendidos en clase:
Como dato interesante a tener en cuenta, en la terminal tenemos head, tail y se refiere a las partes del gato, siendo la cabeza y la cola, pero si queremos ver "todo el gato" es decir, todo el contenido usamos cat. Cosas curiosas de Linux :).
ls -lh | less : Mediante el pipe operator cambié el output del archivo hacia el comando less .
ls -lh | tee output.txt | less : Lo que hace este comando es redireccionar el output del ls hacia un archivo output y luego mostrarlo con less.
Finalmente si queremos usar lolcat y cowsay, y no los tienes debes instalarlos con:
sudoaptinstall lolcat
sudoaptinstall coway
oye con esta información me será más facil recordar la información: tail - cola, head -cabeza y cat el gato completo
Gracias por el aporte!!
Sí, recuerdo haber leído esta info en un post y me pareció súper interesante el origen de los comandos head, tail y cat.
¡Esta clase me pareció divertida! Me ayuda a perderle un poco el miedo a la Terminal.
!Mi vaquita de colores
Solo que cuidado, ahí te encuentras en windows, todo lo azul antes del "$" es la ruta de donde te encuentras, ahora mismo desconozco si eso genera algún problema, para eso en cuanto abras la terminal coloca el comando cd ~ y te mandara al home de ubuntu.
Entonces el pipe operator, haciendo una analogía con cálculo, sería como pasar el output de una función a el input de otra, ¿no?
Hola!
Asi es! Es como componer funciones
f o g (x)
Gracias por responder
Me siento perdida en la clase, la comunidad y el investigar me ha ayudado a entender. Pero recomendaria al profe que usaramos archivos sin tantos documentos adentro para que podamos ver mejor las cosas cuando las concatenamos a veces el se mueve de un archivo a otro y uno no sabe que fue lo que hizo. De todas formas quiero agregar que el curso me ha gustado y he aprendido mucho!
Saludos Laura:
Pensé que era la única que se sentía así. El profesor en muchas ocasiones asume detalles que son importantes para los que estamos comenzando en este mundo. Ahora bien, nuestros pares son extraordinarios y sus aportes ayudan grandemente.
Tranquis, a mi me todo 6 meses aprender git y github 😅
Aquí te enseño que es realmente un pipe operator de manera fácil y concisa y con un ejemplo que entenderás a la primera.
Un pipe operator de acuerdo a su nombre sería un tubo (me gusta verlo mas como un puente) para conectar funciones. En esta clase el profe enseña esto pero con dos funciones que no permiten entenderlo del todo bien y tampoco a la primera, como soy docente pensé que muchos necesitarian una forma mas clara para entederlo. Con un ejemplo mejor, aquí está:
ls es un comando que nos sirve para mostrar una lista de los archivos y directorios.
De modo tal que si hacemos ls estando en home, este comando nos va mostrar la lista de los archivos y directorios (carpetas) ejemplo:
ls
Midirectorio index.html nombres.txt error.txt output.txt
sort es un comando que nos permite ordenar alfabeticamente las lineas de archivos de texto.
De modo tal que si tenemos una archivo de texto llamado nombres con los siguientes nombres(cada uno en una línea): Carlos Maria Andrés. y aplicamos el comando sort, sucederá lo siguiente
sort nombres.txtAndresCarlosMaria
Sí, como te diste cuenta los ordenó alfabeticamente.
Y entonces para que se usa el Pipe operator?
Un pipe operator toma los resultados o datos (output) obtenidos de la ejecución de un primer comando para que el segundo comando los use como entrada (input) al ejecutar su proceso y entonces la ejecución de ese segundo comando se hace sobre el resultado (output) del primero.
Por ejemplo si quisieramos ver los directorios y archivos de nuestro home de manera ordenada alfabeticamente tendriamos que hacer lo siguiente.
ls | sort
y de este modo obtendriamos lo siguiente:
ls | sort
Midirectorioerror.txtindex.htmlnombres.txtoutput.txt
Lo que sucedió aquí es que tomamos el resultado del primer comando :ls (la lista de nombres de directorios y archivos) y a ésta, se ejecutó el proceso del segundo comando: sort. Y como resultado obtuvimos nuestra lista de home organizada alfabeticamente
(la terminal toma las letras mayusculas como prioridad, es por esto que "Midirectorio" está en primer lugar)
Esta vista ordenada de archivos y directorios en home fue posible gracias al pipe operator ya que recordemos que sort es un comando que si se ejecuta solo (sin un pipe operator), funcionará unicamente con archivos de texto.
muchas gracias por tu aporte, me sirvió mucho!
Genial! Leí un montón de aportes pero el suyo me ayudó a entender esta clase con claridad. Muchas gracias :)
El comando 'apt-get ’ está diseñado para instalar paquetes en sistemas Linux. Homebrew es el equivalente para la Mac. Es el administrador de paquetes que la mayoría de las personas se sienten cómodos con su uso. Homebrew instala paquetes en su propio directorio y luego, simbólicamente, vincula sus archivos a / user / local . Puede instalar homebrew y ejecutar el comando para instalar paquetes siguiendo los pasos a continuación:
Mantenga presionada la tecla Comando y presione la barra espaciadora para abrir Spotlight, luego escriba Terminal y Entrar.
Primero, necesita instalar la herramienta de línea de comandos Xcode usando el siguiente comando
xcode-select--install
Después de la instalación de la herramienta Xcode, ahora escriba / copie el siguiente comando para instalar Homebrew en macOS:
Ahora, utilizando Homebrew , escriba el siguiente comando para instalar cualquier paquete que desee instalar
brew install nombreDelPaquete
Una vez instalado el Homebrew ejecutar los comandos
brew install cowsay
brew install lolcat
Gracias Arturo!!
LEWD
Como haces eso, dime :,v
no es el mejor aporte pero me gusto
repeat 5{cowsay "texto"| lolcat}
No lo puedo hacer en la terminal del mac... 😞
Con cowsay -l pueden ver todos los dibujos disponibles
Gracias Liliana
Así pude ver
no puedo ver ningún dibujo y ninguna respuesta usando ese comando.. la terminal se queda como congelada y no me arroja ningún resultado.. tengo bash de linux lite
Hola chicos(as), Aqui les dejo un video de refuerzo para que puedan entender mejor que son y para que sirven los PIPES OPERATOR.
Con este video pude entenderlo mucho mejor. Espero les sirva.
https://www.youtube.com/watch?v=YmcS_ns_z3Y