स्ट्रीम एडिटर - बेसिक सिंटेक्स

यह अध्याय SED का समर्थन करने वाले मूल आदेशों और उनके कमांड-लाइन सिंटैक्स का परिचय देता है। SED को निम्नलिखित दो रूपों में आमंत्रित किया जा सकता है:

sed [-n] [-e] 'command(s)' files 
sed [-n] -f scriptfile files

पहला फ़ॉर्म इन-लाइन आदेशों को निर्दिष्ट करने की अनुमति देता है और वे एकल उद्धरणों में संलग्न हैं। बाद में एक स्क्रिप्ट फ़ाइल निर्दिष्ट करने की अनुमति देता है जिसमें SED कमांड शामिल हैं। हालाँकि, हम कई बार दोनों रूपों का एक साथ उपयोग कर सकते हैं। SED अपने व्यवहार को नियंत्रित करने के लिए विभिन्न कमांड-लाइन विकल्प प्रदान करता है।

आइए देखें कि हम कई SED कमांड को कैसे निर्दिष्ट कर सकते हैं। SED प्रदान करता हैdeleteकुछ पंक्तियों को हटाने का आदेश। आइए हम 1st, 2nd और 5th लाइनें हटाते हैं। कुछ समय के लिए, डिलीट कमांड के सभी विवरणों को अनदेखा करें। हम बाद में डिलीट कमांड के बारे में अधिक चर्चा करेंगे।

सबसे पहले, फ़ाइल सामग्री का उपयोग करके प्रदर्शित करें cat आदेश।

[jerry]$ cat books.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

1) A Storm of Swords, George R. R. Martin, 1216 
2) The Two Towers, J. R. R. Tolkien, 352 
3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
5) The Pilgrimage, Paulo Coelho, 288 
6) A Game of Thrones, George R. R. Martin, 864

अब SED को केवल कुछ पंक्तियों को हटाने का निर्देश दें। यहां, तीन लाइनों को हटाने के लिए, हमने -e विकल्प के साथ तीन अलग-अलग कमांड निर्दिष्ट किए हैं।

[jerry]$ sed -e '1d' -e '2d' -e '5d' books.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
6) A Game of Thrones, George R. R. Martin, 864

इसके अतिरिक्त, हम एक पाठ फ़ाइल में कई SED कमांड लिख सकते हैं और पाठ फ़ाइल को SED के तर्क के रूप में प्रदान कर सकते हैं। SED पैटर्न बफर पर प्रत्येक कमांड को लागू कर सकता है। निम्न उदाहरण SED के दूसरे रूप को दिखाता है।

सबसे पहले, SED कमांड वाले टेक्स्ट फाइल बनाएं। आसान समझ के लिए, हम उसी SED कमांड का उपयोग करते हैं।

[jerry]$ echo -e "1d\n2d\n5d" > commands.txt [jerry]$ cat commands.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

1d 
2d 
5d

अब एसईडी को टेक्स्ट फाइल से कमांड पढ़ने का निर्देश दें। यहां, हम उसी परिणाम को प्राप्त करते हैं जैसा कि उपरोक्त उदाहरण में दिखाया गया है।

[jerry]$ sed -f commands.txt books.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

3) The Alchemist, Paulo Coelho, 197 
4) The Fellowship of the Ring, J. R. R. Tolkien, 432 
6) A Game of Thrones,George R. R. Martin, 864

मानक विकल्प

SED निम्नलिखित मानक विकल्पों का समर्थन करता है:

  • -n: पैटर्न बफर का डिफ़ॉल्ट मुद्रण। उदाहरण के लिए, निम्न SED कमांड कोई आउटपुट नहीं दिखाता है:

  • [jerry]$ sed -n '' quote.txt
  • -इ : अगला तर्क एक संपादन कमांड है। यहां, कोणीय कोष्ठक अनिवार्य पैरामीटर का उपयोग करते हैं। इस विकल्प का उपयोग करके, हम कई कमांड निर्दिष्ट कर सकते हैं। आइए हम प्रत्येक पंक्ति को दो बार प्रिंट करते हैं:

  • [jerry]$ sed -e '' -e 'p' quote.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

There is only one thing that makes a dream impossible to achieve: the fear of failure. 
There is only one thing that makes a dream impossible to achieve: the fear of failure. 
 - Paulo Coelho, The Alchemist 
 - Paulo Coelho, The Alchemist
  • एफ : अगला तर्क एक फाइल है जिसमें एडिटिंग कमांड्स हैं। कोणीय कोष्ठक अनिवार्य पैरामीटर का मतलब है। निम्नलिखित उदाहरण में, हम फ़ाइल के माध्यम से प्रिंट कमांड निर्दिष्ट करते हैं:

[jerry]$ echo "p" > commands 
[jerry]$ sed -n -f commands quote.txt

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं:

There is only one thing that makes a dream impossible to achieve: the fear of failure. 
 - Paulo Coelho, The Alchemist

GNU विशिष्ट विकल्प

हमें जल्दी से GNU विशिष्ट SED विकल्पों के माध्यम से जाना। ध्यान दें कि ये विकल्प जीएनयू विशिष्ट हैं; और SED के अन्य वेरिएंट द्वारा समर्थित नहीं हो सकता है। बाद के अनुभागों में, हम इन विकल्पों पर अधिक विवरण में चर्चा करेंगे।

  • -n, --quiet, --silent: मानक -n विकल्प के रूप में भी।

  • -ई स्क्रिप्ट, - एक्सप्रेशन = स्क्रिप्ट: मानक -ई विकल्प के रूप में भी।

  • -f स्क्रिप्ट-फ़ाइल, --file = स्क्रिप्ट-फ़ाइल: मानक -f विकल्प के रूप में भी।

  • --foll-symlinks: यदि यह विकल्प प्रदान किया जाता है, तो SED फाइलों को संपादित करते समय प्रतीकात्मक लिंक का अनुसरण करता है।

  • -i [SUFFIX], --in-place [= SUFFIX]: इस विकल्प का उपयोग फाइल को जगह में एडिट करने के लिए किया जाता है। यदि प्रत्यय प्रदान किया गया है, तो यह मूल फ़ाइल का बैकअप लेता है, अन्यथा यह मूल फ़ाइल को अधिलेखित कर देता है।

  • -l N, --line-lenght = N: यह विकल्प एन कमांड के लिए l कमांड के लिए लाइन की लंबाई निर्धारित करता है।

  • --posix: यह विकल्प सभी GNU एक्सटेंशन को निष्क्रिय कर देता है।

  • -r, --regexp-Extended: यह विकल्प मूल नियमित अभिव्यक्तियों के बजाय विस्तारित नियमित अभिव्यक्तियों का उपयोग करने की अनुमति देता है।

  • -u, --unbuffered: जब यह विकल्प प्रदान किया जाता है, तो SED इनपुट फाइलों से न्यूनतम मात्रा में डेटा लोड करता है और आउटपुट बफ़र्स को अधिक बार फ्लश करता है। जब आप आउटपुट के लिए इंतजार नहीं करना चाहते हैं तो "टेल-एफ" के आउटपुट को संपादित करना उपयोगी होता है।

  • -z, --null-data: डिफ़ॉल्ट रूप से, SED प्रत्येक पंक्ति को एक नई-लाइन वर्ण द्वारा अलग करता है। यदि NULL-data विकल्प प्रदान किया जाता है, तो यह NULL वर्णों द्वारा लाइनों को अलग करता है।