खोज…


वाक्य - विन्यास

  • [समय [-पी]] [!] कमांड १ [| या | & कमांड 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 डिफ़ॉल्ट, जिसका अर्थ है कि इसे पर्याप्त डेटा प्राप्त करना है, इससे पहले कि यह कुछ भी प्रिंट करेगा, संभवतः आगे की प्रक्रिया में देरी का कारण होगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow