कुछ कमांड हैं जो इनपुट पर फ़िल्टर या कार्य करते हैं, और फिर इसे आउटपुट के रूप में पास करते हैं, मुझे लगता है कि आमतौर पर stdout
- - लेकिन कुछ कमांड बस इसे ले लेंगे stdin
और इसके साथ जो भी करेंगे, और आउटपुट कुछ भी नहीं करेंगे।
मैं ओएस एक्स से सबसे अधिक परिचित हूं और इसलिए दो हैं जो तुरंत दिमाग में आते हैं pbcopy
और pbpaste
- जो सिस्टम क्लिपबोर्ड तक पहुंचने के साधन हैं।
किसी भी तरह, मुझे पता है कि अगर मैं स्टडआउट लेना चाहता हूं और आउटपुट को दोनों stdout
और एक फाइल पर जाने के लिए थूकना चाहता हूं तो मैं tee
कमांड का उपयोग कर सकता हूं । और मुझे इसके बारे में थोड़ा पता है xargs
, लेकिन मुझे नहीं लगता कि मैं यही देख रहा हूं।
मैं जानना चाहता हूं कि मैं stdout
दो (या अधिक) कमांड के बीच जाने के लिए कैसे विभाजित हो सकता हूं । उदाहरण के लिए:
cat file.txt | stdout-split -c1 pbcopy -c2 grep -i errors
उस एक से बेहतर उदाहरण शायद है, लेकिन मैं वास्तव में यह जानने में दिलचस्पी रखता हूं कि मैं एक कमांड को कैसे भेज सकता हूं जो इसे रिले नहीं करता है और stdout
"म्यूट" होने से बचाते हुए - मैं cat
किसी फाइल के बारे में नहीं पूछ रहा हूं और grep
इसका एक हिस्सा और इसे क्लिपबोर्ड पर कॉपी करें - विशिष्ट कमांड यह महत्वपूर्ण नहीं हैं।
इसके अलावा - मैं यह नहीं पूछ रहा हूं कि इसे किसी फाइल में कैसे भेजा जाए stdout
- और यह एक "डुप्लिकेट" सवाल (खेद) हो सकता है, लेकिन मैंने कुछ तलाश किया और केवल वही खोज सकता हूं जो पूछ रहे थे कि स्टडआउट और फाइल के बीच विभाजन कैसे करें - और उन सवालों के जवाब लग रहे थे tee
, जो मुझे नहीं लगता कि मेरे लिए काम करेगा।
अंत में, आप पूछ सकते हैं "पाइप श्रृंखला में बस आखिरी चीज को क्यों नहीं बनाते हैं?" और मेरी प्रतिक्रिया 1 है) क्या होगा यदि मैं इसका उपयोग करना चाहता हूं और अभी भी कंसोल में आउटपुट देखता हूं? 2) क्या होगा अगर मैं दो कमांड का उपयोग करना चाहता हूं जो stdout
इनपुट की प्रक्रिया के बाद आउटपुट नहीं करते हैं ?
ओह, और एक और बात - मुझे एहसास है कि मैं उपयोग कर सकता हूं tee
और एक नामित पाइप ( mkfifo
) है, लेकिन मैं एक तरह से उम्मीद कर रहा था कि यह बिना किसी पूर्व सेटअप के, इनलाइन तरीके से किया जा सकता है :)