Comando de tubería de Linux

Comando de tubería de Linux
Este comando "tubería" está fácilmente disponible en plataformas Unix/Linux. Este comando tiene la salida del comando anterior al siguiente comando. Hay literalmente toneladas de situaciones en las que este método ofrece un valor serio.Antes de saltar más profundo, hay algo que saber. Cada programa en el sistema Unix/Linux tiene 3 flujos de datos incorporados.
  • Stdin (0) - Entrada estándar
  • Stdout (1) - salida estándar
  • STDERR (2) - Error estándar

Cuando vamos a trabajar con trucos de "tubería", "tubería" tomará el stdout de un comando y lo pasará al stdin del siguiente comando.

Veamos algunas de las formas más comunes en que puede incorporar el comando "tubería" en su uso diario.

Comando de tubería

Uso básico

Es mejor explicar el método de trabajo de "tubería" con un ejemplo en vivo, correcto? Empecemos. El siguiente comando le dirá a "Pacman", el administrador de paquetes predeterminado para Arch y todas las distribuciones basadas en Arch, para imprimir todos los paquetes instalados en el sistema.

pacman -qqe

Es una lista muy larga de paquetes. Cómo, de recoger solo unos pocos componentes? Podríamos usar "Grep". Pero cómo? Una forma sería arrojar la salida a un archivo temporal, "Grep" la salida deseada y eliminar el archivo. Esta serie de tareas, por sí sola, se puede convertir en un script. Pero solo escribimos por cosas muy grandes. Para esta tarea, llamemos a la potencia de la "tubería"!

Pacman -qqe | grep

Impresionante, ¿no?? El "|" El signo es la llamada al comando "tubería". Agarra el stdout de la sección izquierda y la alimenta en el stdin de la sección derecha.

En el ejemplo mencionado anteriormente, el comando "tubería" realmente pasó la salida al final de la parte "grep". Así es como se desarrolla.

Pacman -qqe> ~/Desktop/Pacman_Package.TXT
Grep Python ~/Desktop/Pacman_Package.TXT

Tuberías múltiples

Básicamente, no hay nada especial con el uso avanzado del comando "tubería". Depende completamente de usted sobre cómo usarlo.

Por ejemplo, comencemos por apilar múltiples tuberías.

Pacman -qqe | Grep P | Grep | grep py

La salida del comando de Pacman se filtra cada vez más por "Grep" a través de una serie de tuberías.

A veces, cuando estamos trabajando con el contenido de un archivo, puede ser muy, muy grande. Descubrir el lugar correcto de nuestra entrada deseada puede ser difícil. Busquemos todas las entradas que incluyan dígitos 1 y 2.

demostración de gato.txt | Grep -n 1 | Grep -n 2

Manipulación de la lista de archivos y directorios

Qué hacer cuando se trata de un directorio con toneladas de archivos en él? Es bastante molesto desplazarse por toda la lista. Claro, ¿por qué no hacerlo más soportable con tubería?? En este ejemplo, verifiquemos la lista de todos los archivos en la carpeta "/usr/bin".

LS -L | más

Aquí, "LS" imprime todos los archivos y su información. Luego, "tubería" lo pasa a "más" para trabajar con eso. Si no lo sabía, "más" es una herramienta que convierte los textos en una vista de pantalla a la vez. Sin embargo, es una herramienta antigua y, según la documentación oficial, "menos" es más recomendable.

ls -l /usr /bin | menos

Clasificación de salida

Hay una herramienta incorporada "Sort" que tomará la entrada de texto y las ordenará. Esta herramienta es una verdadera joya si estás trabajando con algo realmente desordenado. Por ejemplo, obtuve este archivo lleno de cadenas aleatorias.

demostración de gato.TXT

Simplemente entra en "ordenar".

demostración de gato.txt | clasificar

Eso es mejor!

Impresión de coincidencias de un patrón particular

ls -l | encontrar ./ -Type f -name "*.txt "-exec grep 00110011 \;

Este es un comando bastante retorcido, correcto? Al principio, "LS" genera la lista de todos los archivos en el directorio. La herramienta "Buscar" toma la salida, busca ".TXT "archivos y convocaciones" GREP "para buscar" 00110011 ". Este comando verificará cada archivo de texto en el directorio con la extensión TXT y buscará las coincidencias.

Imprimir contenido de archivo de una gama particular

Cuando trabaja con un archivo grande, es común tener la necesidad de verificar el contenido de un cierto rango. Podemos hacer exactamente eso con un combo inteligente de "gato", "cabeza", "cola" y, por supuesto, "pipa". La herramienta "Cabeza" genera la primera parte de un contenido y "cola" emite la última parte.

gato | Cabeza -6
gato | cola -6

Valores únicos

Cuando se trabaja con salidas duplicadas, puede ser bastante molesto. A veces, la entrada duplicada puede causar problemas graves. En este ejemplo, echemos "UNIQ" en un flujo de texto y guárdelo en un archivo separado.

Por ejemplo, aquí hay un archivo de texto que contiene una gran lista de números que tienen 2 dígitos de largo. Definitivamente hay contenidos duplicados aquí, correcto?

gato duplicado.txt | clasificar

Ahora, realicemos el proceso de filtrado.

gato duplicado.txt | ordenar | uniq> único.TXT

Consulte la salida.

bate único.TXT

Se ve mejor!

Tuberías de error

Este es un método de tubería interesante. Este método se utiliza para redirigir el stderr a stdout y continuar con la tubería. Esto se denota por el símbolo "| &" (sin las citas). Por ejemplo, creemos un error y enviemos la salida a alguna otra herramienta. En este ejemplo, acabo de escribir un comando aleatorio y pasé el error a "GREP".

adsfds | & Grep n

Pensamientos finales

Si bien la "tubería" en sí misma es bastante simplista, la forma en que funciona ofrece una forma muy versátil de utilizar el método de manera infinita. Si te gustan las secuencias de comandos bash, entonces es mucho más útil. A veces, puedes hacer locuras directamente! Obtenga más información sobre Bash Scripting.