Linux कमांड लाइन में दक्षता · पाठ

`sed` और `awk` से टेक्स्ट में बदलाव

स्ट्रीम संपादन के लिए `sed` और उन्नत टेक्स्ट संसाधन तथा रिपोर्ट बनाने के लिए `awk` का उपयोग करें।

पाठ 3, कुल 4 में से11 चरण

`sed` और `awk` से टेक्स्ट में बदलाव, CoddyKit पर Linux कमांड लाइन में दक्षता का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Linux कमांड लाइन में दक्षता सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

`sed` और `awk` से परिचय

पाठ में बदलाव करने वाले एक शक्तिशाली पाठ में आपका स्वागत है! हम Linux के दो आवश्यक कमांड-लाइन उपकरणों: sed और awk का अध्ययन करेंगे।

ये उपकरण पाठ फ़ाइलों को संपादित और संसाधित करने के लिए अत्यंत उपयोगी हैं, इसलिए सिस्टम प्रशासकों, डेवलपरों और डेटा विश्लेषकों के लिए बहुत आवश्यक हैं।

  • sed (स्ट्रीम एडिटर): पाठ ढूँढ़ने और बदलने या पंक्तियाँ हटाने जैसे सरल पाठ-रूपांतरणों के लिए उपयोगी।
  • awk (पैटर्न स्कैनिंग और प्रोसेसिंग भाषा): उन्नत डेटा निष्कर्षण, रिपोर्टिंग और शर्त-आधारित प्रोसेसिंग के लिए अधिक सक्षम भाषा।

सरल प्रतिस्थापन के लिए `sed`

sed का सबसे सामान्य उपयोग प्रतिस्थापन है। आप s आदेश का उपयोग करके किसी पंक्ति पर विशेष पाठ पैटर्न को बदल सकते हैं। s का अर्थ substitute यानी प्रतिस्थापित करना है।

मूल वाक्य-विन्यास है sed 's/pattern/replacement/'। डिफ़ॉल्ट रूप से, यह प्रत्येक पंक्ति में पैटर्न की केवल पहली उपस्थिति को बदलता है।

echo "hello world, hello universe" | sed 's/hello/hi/'

वैश्विक और बड़े-छोटे अक्षरों से स्वतंत्र `sed`

यदि आप किसी पंक्ति में मौजूद सभी उपस्थितियों को बदलना या बड़े-छोटे अक्षरों के अंतर की अनदेखी करना चाहें तो? sed में इसके लिए फ़्लैग हैं!

  • g फ़्लैग (वैश्विक) किसी पंक्ति में सभी मिलानों को बदलता है।
  • i फ़्लैग (बड़े-छोटे अक्षरों से स्वतंत्र) पैटर्न मिलाते समय बड़े और छोटे अक्षरों के अंतर की अनदेखी करता है।

आप फ़्लैग को मिलाकर भी उपयोग कर सकते हैं, जैसे gi।

echo "Apple apple APPLE" | sed 's/apple/orange/gi'

`sed` से पंक्तियाँ हटाना

प्रतिस्थापन के अलावा, sed किसी पैटर्न या पंक्ति संख्या के आधार पर पूरी पंक्तियाँ भी हटा सकता है। हटाने के लिए d आदेश का उपयोग किया जाता है।

किसी विशेष शब्द वाली पंक्तियाँ हटाने के लिए आप sed '/pattern/d' का उपयोग करेंगे। आप विशेष पंक्ति संख्याएँ भी हटा सकते हैं, जैसे दूसरी पंक्ति के लिए sed '2d'।

echo -e "Line 1
REMOVE THIS LINE
Line 3" | sed '/REMOVE/d'

पंक्तियाँ सम्मिलित करना और जोड़ना

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

  • i आदेश मेल खाने वाली पंक्ति से पहले पाठ सम्मिलित करता है।
  • a आदेश मेल खाने वाली पंक्ति के बाद पाठ जोड़ता है।

सम्मिलित या जोड़ा जाने वाला पाठ आदेश के बाद नई पंक्ति पर होना चाहिए या बैकस्लैश से एस्केप किया जाना चाहिए।

echo "Existing line" | sed 'i\New line before'

पैटर्न स्कैनिंग के लिए `awk`

अब आइए, awk को विस्तार से समझते हैं। यह केवल स्ट्रीम एडिटर नहीं है; यह पैटर्न स्कैनिंग और प्रोसेसिंग के लिए बनाई गई प्रोग्रामिंग भाषा है!

awk पाठ फ़ाइलों को एक-एक पंक्ति करके संसाधित करता है। प्रत्येक पंक्ति के लिए यह जाँचता है कि वह दिए गए पैटर्न से मेल खाती है या नहीं। यदि मेल खाती है, तो यह संबंधित कार्रवाई करता है। मूल संरचना है awk 'pattern { action }'।

echo -e "apple
banana
orange" | awk '{ print }'

`awk` के फ़ील्ड के साथ काम करना

awk की एक महत्वपूर्ण विशेषता प्रत्येक पंक्ति को फ़ील्ड (स्तंभों) में अपने-आप बाँटने की क्षमता है। डिफ़ॉल्ट रूप से, रिक्त स्थान और टैब फ़ील्ड विभाजक का काम करते हैं।

  • $1, $2, $3, ...: पहले, दूसरे, तीसरे फ़ील्ड आदि को दर्शाते हैं।
  • $0: पूरी पंक्ति को दर्शाता है।
  • -F विकल्प: कस्टम फ़ील्ड विभाजक निर्दिष्ट करने के लिए इसका उपयोग करें, जैसे अल्पविराम से अलग किए गए मानों के लिए -F','।
echo "Name:Alice,Age:30" | awk -F',' '{ print "Hello, " $1 }'

`awk` में शर्त-आधारित तर्क

awk आपको अपनी कार्रवाइयों में if जैसे शर्तीय कथनों का उपयोग करने देता है। इसका अर्थ है कि आप कुछ मानदंड पूरे होने पर ही पंक्तियों या फ़ील्ड को संसाधित कर सकते हैं।

संख्यात्मक तुलनाओं, स्ट्रिंग मिलानों और अन्य आधारों पर डेटा फ़िल्टर करने के लिए यह बेहद शक्तिशाली है।

echo -e "itemA 10
itemB 5
itemC 12" | awk '{ if ($2 > 8) print $1 " is expensive" }'

`awk` के उपयोगी चर

प्रोसेसिंग के दौरान उपयोगी जानकारी देने वाले कई अंतर्निहित चर awk उपलब्ध कराता है:

  • NR (रिकॉर्ड संख्या): वर्तमान में संसाधित की जा रही पंक्ति संख्या।
  • NF (फ़ील्ड संख्या): वर्तमान पंक्ति में फ़ील्ड की कुल संख्या।
  • FILENAME: वर्तमान इनपुट फ़ाइल का नाम।

ये चर आपको गतिशील और संदर्भ-जागरूक स्क्रिप्ट बनाने में सहायता करते हैं।

echo -e "one two
three four five" | awk '{ print "Line " NR ": " NF " fields" }'

`sed` प्रतिस्थापन प्रश्नोत्तरी

sed के बारे में अपने ज्ञान की जाँच करने का समय आ गया है!

`sed` और `awk` का पुनरावलोकन

बहुत बढ़िया! आपने दो अत्यंत शक्तिशाली पाठ-प्रोसेसिंग उपकरणों: sed और awk की मूल बातें सीख ली हैं।

  • sed स्ट्रीम एडिटिंग के लिए आपका मुख्य उपकरण है। यह त्वरित प्रतिस्थापन (s), पंक्तियाँ हटाने (d) और पाठ सम्मिलित या जोड़ने के लिए उत्तम है। g (वैश्विक) और i (बड़े-छोटे अक्षरों से स्वतंत्र) फ़्लैग याद रखें!
  • awk पैटर्न स्कैनिंग के लिए एक बहुमुखी भाषा है। यह पंक्तियों को फ़ील्ड में बाँटने ($1, $2, ...), कस्टम सीमांककों (-F) का उपयोग करने, शर्त-आधारित तर्क (if) लागू करने और NR तथा NF जैसे अंतर्निहित चरों का उपयोग करने में विशेष रूप से उपयोगी है।

पाठ में बदलाव करने के अपने कौशल में महारत हासिल करने के लिए इन आदेशों का अभ्यास करें!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Linux कमांड लाइन में दक्षता सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “`sed` और `awk` से टेक्स्ट में बदलाव” पाठ निःशुल्क है?

हाँ—“`sed` और `awk` से टेक्स्ट में बदलाव” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Linux कमांड लाइन में दक्षता पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Linux कमांड लाइन में दक्षता पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“`sed` और `awk` से टेक्स्ट में बदलाव” में मैं क्या सीखूँगा?

स्ट्रीम संपादन के लिए `sed` और उन्नत टेक्स्ट संसाधन तथा रिपोर्ट बनाने के लिए `awk` का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Linux कमांड लाइन में दक्षता का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Linux कमांड लाइन में दक्षता शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Linux कमांड लाइन में दक्षता शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“`sed` और `awk` से टेक्स्ट में बदलाव” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Linux कमांड लाइन में दक्षता पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Linux कमांड लाइन में दक्षता पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. मानक स्ट्रीम और पुनर्निर्देशन
  2. `grep` से टेक्स्ट फ़िल्टर करना
  3. `sed` और `awk` से टेक्स्ट में बदलाव
  4. sort, uniq और cut से परिणाम मिलाना और क्रमबद्ध करना
← Linux कमांड लाइन में दक्षता पर वापस जाएँ