खोज…
वाक्य - विन्यास
- [समय [-पी]] [!] कमांड १ [| या | & कमांड 2]…
टिप्पणियों
एक पाइपलाइन सरल आदेशों के अनुक्रम नियंत्रण ऑपरेटरों में से एक के द्वारा अलग है |
या |&
( स्रोत )
|
के उत्पादन में जोड़ता है command1
के इनपुट को command2
।
|&
मानक आउटपुट और की मानक त्रुटि को जोड़ता command1
के मानक इनपुट करने के लिए command2
।
सभी प्रक्रियाओं को दिखाएं
ps -e | less
ps -e
सभी प्रक्रियाओं को दिखाता है, इसका आउटपुट अधिक के इनपुट से जुड़ा होता है |
, परिणामों को less
करता है।
का उपयोग कर |
|&
पहली कमांड के मानक आउटपुट और मानक त्रुटि को दूसरे से जोड़ता है जबकि |
केवल पहली कमांड के मानक आउटपुट को दूसरी कमांड से जोड़ता है।
इस उदाहरण में, पृष्ठ curl
माध्यम से डाउनलोड किया गया है। -v
विकल्प curl
सहित stderr
पर कुछ जानकारी लिखता है, डाउनलोड किए गए पृष्ठ को stdout
पर लिखा जाता है। पृष्ठ का <title>
और </title>
बीच पाया जा सकता है।
curl -vs 'http://www.google.com/' |& awk '/Host:/{print} /<title>/{match($0,/<title>(.*)<\/title>/,a);print a[1]}'
आउटपुट है:
> Host: www.google.com
Google
लेकिन साथ |
बहुत अधिक जानकारी मुद्रित की जाएगी, अर्थात वे जो stderr
को भेजी जाती हैं क्योंकि केवल stdout
को अगले कमांड पर पाइप किया जाता है। इस उदाहरण में अंतिम पंक्ति (Google) को छोड़कर सभी पंक्तियों को curl
द्वारा stderr
भेजा गया था:
* 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
एक कमांड के निरंतर आउटपुट को संशोधित करें
~$ 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
...
पाइप ( |
) से जोड़ता है stdout
के ping
को stdin
के grep
, जो इसे तुरंत संसाधित करता है। कुछ अन्य कमांड जैसे कि उनके stdin
को बफर करने के लिए sed
डिफ़ॉल्ट, जिसका अर्थ है कि इसे पर्याप्त डेटा प्राप्त करना है, इससे पहले कि यह कुछ भी प्रिंट करेगा, संभवतः आगे की प्रक्रिया में देरी का कारण होगा।