Buscar..


Sintaxis

  • [time [-p]] [!] command1 [| o | y comando2]…

Observaciones

Una tubería es una secuencia de comandos simples separados por uno de los operadores de control | o |& ( fuente ).

| conecta la salida de command1 a la entrada de command2 .

|& conecta la salida estándar y el error estándar de command1 a la entrada estándar de command2 .

Mostrar todos los procesos paginados.

ps -e | less

ps -e muestra todos los procesos, su salida está conectada a la entrada de más vía | , less pagina los resultados.

Utilizando | &

|& conecta la salida estándar y el error estándar del primer comando al segundo mientras que | solo conecta la salida estándar del primer comando al segundo comando.

En este ejemplo, la página se descarga a través de curl . con la opción -v curl escribe alguna información en stderr incluida, la página descargada se escribe en stdout . El título de la página se puede encontrar entre <title> y </title> .

curl -vs 'http://www.google.com/' |& awk '/Host:/{print} /<title>/{match($0,/<title>(.*)<\/title>/,a);print a[1]}'

La salida es:

> Host: www.google.com
Google

Pero con | se imprimirá mucha más información, es decir, las que se envían a stderr porque solo la stdout se canaliza al siguiente comando. En este ejemplo, todas las líneas, excepto la última (Google), se enviaron a stderr por curl :

* Hostname was NOT found in DNS cache
*   Trying 172.217.20.228...
* Connected to www.google.com (172.217.20.228) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: www.google.com
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Sun, 24 Jul 2016 19:04:59 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Set-Cookie: NID=82=jX0yZLPPUE7u13kKNevUCDg8yG9Ze_C03o0IM-EopOSKL0mMITEagIE816G55L2wrTlQwgXkhq4ApFvvYEoaWF-oEoq2T0sBTuQVdsIFULj9b2O8X35O0sAgUnc3a3JnTRBqelMcuS9QkQA; expires=Mon, 23-Jan-2017 19:04:59 GMT; path=/; domain=.google.com; HttpOnly
< Accept-Ranges: none
< Vary: Accept-Encoding
< X-Cache: MISS from jetsib_appliance
< X-Loop-Control: 5.202.190.157 81E4F9836653D5812995BA53992F8065
< Connection: close
< 
{ [data not shown]
* Closing connection 0
Google

Modificar la salida continua de un comando.

~$ ping -c 1 google.com # unmodified output
PING google.com (16.58.209.174) 56(84) bytes of data.
64 bytes from wk-in-f100.1e100.net (16.58.209.174): icmp_seq=1 ttl=53 time=47.4 ms
~$ ping google.com | grep -o '^[0-9]\+[^()]\+' # modified output
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
64 bytes from wk-in-f100.1e100.net 
...

La canalización ( | ) conecta el stdout de ping al stdin de grep , que lo procesa inmediatamente. Algunos otros comandos, como sed default, almacenan en búfer su stdin , lo que significa que tiene que recibir suficientes datos, antes de que se imprima algo, lo que podría causar demoras en el procesamiento posterior.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow