किसी भी वर्ण या स्ट्रिंग को `sed` कमांड का उपयोग करके बदला जा सकता है। कभी-कभी, हमें फ़ाइल में न्यूलाइन कैरेक्टर ( ) को अल्पविराम से बदलने की आवश्यकता होती है। इस लेख में, हम को अल्पविराम से बदलने के लिए `sed` कमांड का उपयोग करते हैं।
को अल्पविराम से बदलने के लिए `sed` का उपयोग करना
को अल्पविराम से बदलने पर कई समस्याएं हो सकती हैं। डिफ़ॉल्ट रूप से, फ़ाइल बनाते समय प्रत्येक पंक्ति के साथ समाप्त होती है। `sed` कमांड आसानी से पर विभाजित हो सकता है और नई लाइन को किसी भी वर्ण से बदल सकता है। के स्थान पर एक अन्य सीमांकक का उपयोग किया जा सकता है, लेकिन केवल जब GNU sed का उपयोग किया जाता है। जब फ़ाइल की अंतिम पंक्ति में गायब है, तो GNU sed मुद्रण से बच सकता है । इसके अलावा, आमतौर पर `sed` के लगातार प्रत्येक आउटपुट में जोड़ा जाता है।
एक फ़ाइल बनाएँ
इस लेख में, हम आपको दिखाएंगे कि को अल्पविराम से बदलने के लिए `sed` कमांड का उपयोग कैसे करें। इस ट्यूटोरियल का अनुसरण करने के लिए, नाम की एक टेक्स्ट फ़ाइल बनाएं Clients.txt निम्नलिखित सारणीबद्ध ग्राहक जानकारी के साथ।
पहचान | नाम | ईमेल | फ़ोन |
---|---|---|---|
c01 | एमडी रकीबो | [ईमेल संरक्षित] | ०१८५६२३३२३८ |
c02 | मेहर अफरोज | [ईमेल संरक्षित] | 01733536342 |
सी03 | फकरूल अहसानी | [ईमेल संरक्षित] | 01934737248 |
c04 | हलाल उद्दीन | [ईमेल संरक्षित] | ०१५३४८९५८९८ |
सी05 | Nusrat Jahan | [ईमेल संरक्षित] | ०१८६६३४५२५४ |
उदाहरण 1: -z . का प्रयोग करके को अल्पविराम से बदलें
-z विकल्प का उपयोग को शून्य वर्ण ( ) में बदलने के लिए किया जाता है। फ़ाइल की सामग्री को एक पंक्ति के रूप में माना जाता है यदि इसमें कोई अशक्त वर्ण नहीं है। `sed` कमांड नई लाइन को शून्य वर्ण में बदल देगा और पहली खोज और प्रतिस्थापन पैटर्न का उपयोग करके प्रत्येक को अल्पविराम से बदल देगा। यहाँ, 'g' का प्रयोग विश्व स्तर पर के लिए खोज करने के लिए किया जाता है। दूसरी खोज और प्रतिस्थापन पैटर्न के साथ, अंतिम अल्पविराम को से बदल दिया जाएगा।
$बिल्लीClients.txt
$एसईडी -साथ में 's/ /,/g;s/,$/ /'Clients.txt
कमांड चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
उदाहरण २: a, b, $! का उपयोग करके को अल्पविराम से बदलें! और n
को अल्पविराम से बदलने के लिए `sed` कमांड का उपयोग किया जा सकता है ए, बी, एन, और $! . यहां, प्रति कार्यों को जोड़ने के लिए प्रयोग किया जाता है, बी सामग्री को शाखा देने के लिए उपयोग किया जाता है, एन अगली पंक्ति में जाने के लिए प्रयोग किया जाता है, और $! प्रतिस्थापन कार्य को अंतिम पंक्ति पर लागू होने से रोकने के लिए उपयोग किया जाता है। आदेश प्रत्येक की जगह लेगा एन अंतिम पंक्ति को छोड़कर अल्पविराम के साथ।
$बिल्लीClients.txt
$एसईडी ':a;N;$!ba;s/ /,/g'Clients.txt
कमांड चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
उदाहरण 3: H, h, d, x और y का प्रयोग करके को अल्पविराम से बदलें
यदि आप प्रतिस्थापित करना चाहते हैं एन) एक छोटी फ़ाइल में अल्पविराम के साथ, फिर निम्न `sed` कमांड का उपयोग किया जा सकता है। यहां, एच अंतिम पंक्ति को होल्डिंग टेक्स्ट में जोड़ने के लिए उपयोग किया जाता है, 1h का उपयोग फ़ाइल की प्रत्येक पंक्ति को पहली पंक्ति से होल्डिंग टेक्स्ट में कॉपी करने के लिए किया जाता है, $!डी अंतिम पंक्ति को छोड़कर सभी पंक्तियों को हटाने के लिए प्रयोग किया जाता है, एक्स होल्डिंग टेक्स्ट और पैटर्न स्पेस का आदान-प्रदान करने के लिए प्रयोग किया जाता है, और तथा प्रत्येक को बदलने के लिए प्रयोग किया जाता है एन अल्पविराम के साथ होल्डिंग टेक्स्ट में।
$बिल्लीClients.txt$एसईडी 'H;1h;$!d;x;y/ /,/'Clients.txt
कमांड चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
उदाहरण 4: -n ,H, h, g और p . का प्रयोग करके को अल्पविराम से बदलें
`sed` कमांड को प्रतिस्थापित करने के लिए इस्तेमाल किया जा सकता है एन अल्पविराम के साथ -एन विकल्प, जो स्वचालित मुद्रण को रोकता है। पिछले उदाहरण की तरह, एच अंतिम पंक्ति को होल्डिंग टेक्स्ट में जोड़ने के लिए यहां उपयोग किया जाता है, 1 घंटे फ़ाइल की प्रत्येक पंक्ति को होल्डिंग टेक्स्ट में कॉपी करने के लिए उपयोग किया जाता है, $ फ़ाइल की अंतिम पंक्ति को संदर्भित करता है, जी होल्डिंग टेक्स्ट से कॉपी करने के लिए प्रयोग किया जाता है, और पी प्रिंट करने के लिए प्रयोग किया जाता है।
$बिल्लीClients.txt$एसईडी-एन'एच; 1 एच; ${जी; एस /एन/,/जी;पी}'Clients.txt
उपरोक्त आदेशों को चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
उदाहरण 5: H, x, p . का प्रयोग करके को अल्पविराम से बदलें
एच, एक्स, और पी पिछले उदाहरणों में समझाया गया है। पहली खोज और प्रतिस्थापित अभिव्यक्ति प्रत्येक को प्रतिस्थापित करेगी एन एक अल्पविराम के साथ, और दूसरी खोज और प्रतिस्थापन अभिव्यक्ति एक पंक्ति की शुरुआत में एक स्थान के साथ अल्पविराम को बदल देगी।
$बिल्लीClients.txt$एसईडी-एन'एच;${x;s/ /,/g;s/^,//;p;}'Clients.txt
उपरोक्त आदेशों को चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
उदाहरण 6: N और `cat` . का प्रयोग करके को अल्पविराम से बदलें
फ़ाइल की सामग्री को `sed` कमांड में भेजने के लिए यहां `cat` कमांड का उपयोग किया जाता है, और एन अगली पंक्ति में जाने के लिए उपयोग किया जाता है।
$बिल्लीClients.txt$बिल्लीClients.txt| एसईडी 'एन;एस/ /,/'
उपरोक्त आदेशों को चलाने के बाद निम्न आउटपुट का उत्पादन किया जाएगा।
निष्कर्ष
डेटा को एक फ़ाइल स्वरूप से दूसरे में स्थानांतरित करने के लिए को अल्पविराम से बदलना आवश्यक हो सकता है। इस प्रकार का प्रतिस्थापन अन्य लिनक्स कमांड का उपयोग करके भी किया जा सकता है। इस कार्य को पूरा करने के लिए `sed` कमांड के साथ एच, एन, एच, और एक्स जैसे कई कमांड विकल्प का उपयोग किया जा सकता है। यह ट्यूटोरियल को अल्पविराम से बदलने के लिए `sed` कमांड का उपयोग करने के कई तरीके बताता है।