`Sed` कमांड का उपयोग करके कई लाइनों को कैसे बदलें

How Replace Multiple Lines Using Sed Command



कभी-कभी इसे किसी फ़ाइल की कई पंक्तियों को किसी विशेष वर्ण या पाठ से बदलने की आवश्यकता होती है। फ़ाइल की कई पंक्तियों को बदलने के लिए लिनक्स में विभिन्न कमांड मौजूद हैं। इस प्रकार के कार्य को करने के लिए `sed` कमांड उनमें से एक है। `Sed` का पूर्ण रूप स्टीम एडिटर है, और इसका उपयोग मुख्य रूप से नियमित अभिव्यक्ति का उपयोग करके पाठ को विभिन्न तरीकों से पढ़ने और बदलने के लिए किया जाता है। इस कमांड का उपयोग फ़ाइल की कई पंक्तियों को अलग-अलग तरीकों से बदलने के लिए कैसे किया जा सकता है, इस ट्यूटोरियल में समझाया गया है।

आमतौर पर इस्तेमाल की जाने वाली `sed` चीट शीट:

`sed` कमांड में उपयोग किए जाने वाले सबसे अधिक इस्तेमाल किए जाने वाले वर्णों को निम्न तालिका में समझाया गया है।







चरित्र प्रयोजन
प्रति इसका उपयोग सामग्री जोड़ने के लिए किया जाता है।
बी इसका उपयोग सामग्री को ब्रांच करने के लिए किया जाता है।
सी इसका उपयोग सामग्री बदलने के लिए किया जाता है।
डी इसका उपयोग किसी फ़ाइल की एक पंक्ति को हटाने के लिए किया जाता है।
डी इसका उपयोग किसी फ़ाइल की पहली पंक्ति को हटाने के लिए किया जाता है।
जी यह होल्डिंग टेक्स्ट से कॉपी करता था।
जी इसका उपयोग होल्डिंग टेक्स्ट से जोड़ने के लिए किया जाता है।
एच इसका उपयोग होल्डिंग टेक्स्ट में कॉपी करने के लिए किया जाता है।
एच इसका उपयोग होल्डिंग टेक्स्ट में जोड़ने के लिए किया जाता है।
मैं यह डालने के लिए प्रयोग किया जाता है।
मैं इसका उपयोग स्थानापन्न लाइन को प्रिंट करने के लिए किया जाता है।
एन इसका उपयोग अगली पंक्ति में जाने के लिए किया जाता है।
एन इसका उपयोग अगली इनपुट लाइन को जोड़ने के लिए किया जाता है।
पी इसका उपयोग प्रिंट करने के लिए किया जाता है।
पी इसका उपयोग पहली पंक्ति को प्रिंट करने के लिए किया जाता है।
क्या इसका उपयोग छोड़ने के लिए किया जाता है।
क्यू इसका उपयोग तुरंत छोड़ने के लिए किया जाता है।
आर इसका उपयोग फाइल को पढ़ने के लिए किया जाता है।
आर इसका उपयोग फाइल से लाइन को पढ़ने के लिए किया जाता है।
एस इसका उपयोग स्थानापन्न करने के लिए किया जाता है।
टी इसका उपयोग प्रतिस्थापन के लिए परीक्षण करने के लिए किया जाता है।
टी इसका उपयोग बिना किसी प्रतिस्थापन के परीक्षण के लिए किया जाता है।
में इसका उपयोग फाइल में लिखने के लिए किया जाता है।
में इसका उपयोग फाइल में लाइन लिखने के लिए किया जाता है।
एक्स इसका उपयोग पैटर्न को स्वैप और होल्ड करने के लिए किया जाता है।
तथा इसका उपयोग अनुवाद करने के लिए किया जाता है।
साथ में इसका उपयोग लाइन को साफ करने के लिए किया जाता है।
'=' इसका उपयोग लाइन नंबर को प्रिंट करने के लिए किया जाता है।

टर्मिनल से `sed` कमांड का उपयोग करके कई लाइनें बदलें:

टर्मिनल से एक फ़ाइल से कई लाइनों को बदलने के लिए `sed` कमांड का उपयोग कैसे किया जा सकता है, इस ट्यूटोरियल के इस भाग में दिखाया गया है। नाम की एक फाइल बनाएं sed.txt निम्नलिखित सामग्री के साथ इस भाग के आदेशों का परीक्षण करें।



sed.txt



Sed का फुल फॉर्म स्ट्रीम एडिटर होता है।





यह एक यूनिक्स उपयोगिता है जिसका उपयोग पाठ को एक अलग प्रारूप में पढ़ने और परिवर्तित करने के लिए किया जाता है।

इसे ली ई. मैकमोहन द्वारा विकसित किया गया था।



इसका उपयोग टेक्स्ट प्रोसेसिंग के लिए किया जाता है।

यह नियमित अभिव्यक्तियों का समर्थन करता है।

उदाहरण -1: लगातार दो पंक्तियों को बदलें

निम्नलिखित `sed` कमांड लगातार दो पंक्तियों को दूसरी पंक्ति से बदल देगा। यहां, प्रतिस्थापन टेक्स्ट जोड़ने से पहले -z विकल्प का उपयोग लगातार पंक्तियों को शून्य डेटा से बदलने के लिए किया जाता है। आदेश के अनुसार, 3तृतीयऔर 4वांफ़ाइल की पंक्तियों को टेक्स्ट से बदल दिया जाएगा, 'यह एक बहुत ही उपयोगी उपकरण है' .

$बिल्लीsed.txt
$एसईडी -साथ में इसे ली ई. मैकमोहन द्वारा विकसित किया गया था। इसका उपयोग टेक्स्ट के लिए किया जाता है
प्रसंस्करण./यह एक बहुत ही उपयोगी उपकरण है।/'
sed.txt

कमांड चलाने के बाद निम्न आउटपुट दिखाई देगा।

उदाहरण -2: मैच और वैश्विक ध्वज के आधार पर कई पंक्तियों को बदलें

निम्नलिखित `sed` कमांड शब्द से शुरू होने वाली सभी पंक्तियों को बदल देगा, 'यह' शब्द से, ' इस लाइन को बदल दिया गया है '।

$बिल्लीsed.txt
$एसईडी 's/^It.*/इस लाइन को बदल दिया गया है/g'sed.txt

कमांड चलाने के बाद निम्न आउटपुट दिखाई देगा। तीन पंक्तियों में 'शब्द' है यह 'फाइल में। तो, इन पंक्तियों को प्रतिस्थापन पाठ द्वारा प्रतिस्थापित किया गया है।

उदाहरण -3: मैच और अगली-पंक्ति कमांड के आधार पर कई पंक्तियों को बदलें

निम्नलिखित `sed` कमांड शब्द को बदल देगा,' है 'शब्द से,' था ' अगली पंक्ति के आदेश के साथ, 'एन'।

$बिल्लीsed.txt
$एसईडी ' {n;/is/ {s/is/was/}}'sed.txt

कमांड चलाने के बाद निम्न आउटपुट दिखाई देगा। यहां, 'है' 2 . में मौजूद हैराऔर 4वांफ़ाइल की पंक्तियाँ, और इन पंक्तियों को शब्द द्वारा संशोधित किया जाता है 'था' .

`Sed` स्क्रिप्ट फ़ाइल बनाकर कई पंक्तियों को बदलें:

पिछले उदाहरणों में, टर्मिनल से `sed` कमांड निष्पादित किए गए हैं। लेकिन यह एक स्क्रिप्टिंग भाषा है, और यदि स्क्रिप्ट में कई कथन हैं, तो स्क्रिप्ट के साथ एक sed फ़ाइल बनाना बेहतर है। नाम की एक टेक्स्ट फ़ाइल बनाएँ छात्र.txt निम्नलिखित सामग्री के साथ जिसमें `sed` स्क्रिप्ट लागू की जाएगी।

छात्र.txt

आईडी: 111045
नाम: रॉबर्ट
विभाग: सीएसई
बैच: 35

आईडी: 111876
नाम: जोसेफ
विभाग: बीबीए
बैच: 27

आईडी: 111346
नाम: विलियम
विभाग: सीएसई
बैच: 45

आईडी: 111654
नाम: चार्ल्स
विभाग: ईईई
बैच: 41

आईडी: 111346
नाम: जॉन
विभाग: सीएसई
बैच: 25

आईडी: 111746
नाम: थॉमस
विभाग: सीएसई
बैच: 15

उदाहरण -4: `sed` स्क्रिप्ट फ़ाइल का उपयोग करके फ़ाइल की कई पंक्तियों को बदलें

नाम की एक sed फ़ाइल बनाएँ रिप्लेस.सेड खोज पैटर्न के आधार पर कई पंक्तियों को बदलने के लिए निम्नलिखित सामग्री के साथ। यहाँ, शब्द ' सीएसई ' टेक्स्ट फाइल में सर्च किया जाएगा, और अगर मैच मौजूद है, तो वह फिर से 35 और 15 नंबर सर्च करेगा। अगर फाइल में दूसरा मैच मौजूद है, तो इसे 45 नंबर से बदल दिया जाएगा।

रिप्लेस.सेड

/सीएसई/ {
पी;एन;
/35/ {
एस/35/चार पांच/;
पी;डी;
}
/पंद्रह/ {
एस/पंद्रह/55/;
पी;डी;
}
}
पी;

फ़ाइल की मौजूदा सामग्री की जाँच करने के लिए निम्न आदेश चलाएँ। टेक्स्ट फ़ाइल में 'CSE' चार बार दिखाई दिया। 35 और 15 दो जगहों पर मौजूद हैं।

$बिल्लीछात्र.txt

निम्न आदेश sed स्क्रिप्ट के आधार पर कई पंक्तियों की सामग्री को बदल देगा।

$एसईडी -एन -एफreplace.sed Students.txt

कमांड चलाने के बाद निम्न आउटपुट दिखाई देगा।

निष्कर्ष

इस ट्यूटोरियल में `sed` कमांड का उपयोग करके कई लाइनों या कई लाइनों की सामग्री को बदलने के विभिन्न तरीके दिखाए गए हैं। एक sed फ़ाइल से `sed` स्क्रिप्ट को कैसे निष्पादित किया जा सकता है, यह भी इस ट्यूटोरियल में दिखाया गया है। मुझे उम्मीद है कि यह ट्यूटोरियल `sed` कमांड का उपयोग करके पाठक को किसी भी फाइल की कई पंक्तियों को बदलने में मदद करेगा।