मैं प्रत्येक चरण पर अलग-अलग किए बिना कई आदेशों द्वारा एकल कमांड के आउटपुट को पार्स कैसे कर सकता हूं?
उदाहरण के लिए
ls -al|grep -i something
हर लाइन को पास करेंगे जो उसमें "कुछ" है जो अगले पाइप के लिए है जो ठीक है, लेकिन इसका मतलब यह भी है कि पाइप में हर दूसरी लाइन को छोड़ दिया गया है क्योंकि वहाँ स्थिति से मेल नहीं खाता है। मैं जो चाहता हूं वह स्वतंत्र रूप से कई कमांडों द्वारा एकल पाइप पर संचालित करने में सक्षम होना है।
इस मामले में यह मठ से एक पाइप है जो पूरे संदेश निकाय को पारित करता है। मैं grep प्राप्त करना चाहता हूँ, sed, हटाएं और इनमें से प्रत्येक को शायद चर को काटने के लिए असाइन करें।
प्रारंभ में मैं जो चाहता हूं, वह एक चर के लिए "संदेश आईडी", दूसरे चर के लिए "विषय" को असाइन करने में सक्षम हो सकता है, फिर उन लोगों को उचित कमांड तर्क में पास करें।
यहाँ है कि यह कैसे होगा
MessageBodyFromMutt|grep something -Ax -Bx |grep another thing from the original message| sed some stuff from the original message| cut from here to there
जाहिर है कि उपरोक्त लाइन वह नहीं करती जो मैं चाहता हूं।
मैं इन सभी आदेशों को मूल संदेश निकाय पर संचालित करना चाहता हूं। मुझे उम्मीद है कि यह समझ में आता है
sh
, नहीं bash
। क्या आप इसे बैश चलाने के लिए कॉन्फ़िगर कर सकते हैं? या चला bash -c '...'
।
tee
। यह आपके पाइप (हालांकि, चर के लिए नहीं) कांटे।