फ़ाइल में प्रत्येक पंक्ति के लिए बैश

Bash Each Line File



बैश में फॉर लूप का उपयोग कई कार्यों को करने के लिए विभिन्न रूपों के साथ किया जा सकता है। ऐसी ही एक भिन्नता फ़ाइल में प्रत्येक पंक्ति के लिए है जो फ़ाइल में सभी पंक्तियों को पढ़ने के लिए ज़िम्मेदार है। इस लेख में, हम बैश में फ़ाइल में प्रत्येक पंक्ति के लिए उपयोग करने के तरीकों के बारे में बात करेंगे।

नोट: नीचे दिखाए गए तरीकों को Ubuntu 20.04 पर प्रदर्शित किया गया है। हालांकि, वे किसी भी अन्य लिनक्स वितरण के साथ भी अच्छा काम करेंगे।







बैश में फ़ाइल में प्रत्येक पंक्ति के लिए उपयोग करने के तरीके:

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



विधि # 1: टर्मिनल पर रीड लाइन प्रदर्शित करने के लिए:

फ़ाइल में प्रत्येक पंक्ति का उपयोग करके टर्मिनल पर फ़ाइल की पंक्तियों को प्रदर्शित करने के लिए, आपको निम्न चरणों का पालन करना होगा:



चरण # 1: एक डमी टेक्स्ट फ़ाइल बनाना:

सबसे पहले, आपको प्रदर्शन के लिए कुछ यादृच्छिक डेटा के साथ एक टेक्स्ट फ़ाइल बनानी होगी। हालाँकि, यह टेक्स्ट फ़ाइल कहीं भी बनाई जा सकती है, हालाँकि, यह अत्यधिक अनुशंसा की जाती है कि आप इसे होम फ़ोल्डर में बनाएँ। ऐसा करने के लिए, नीचे दिखाए गए चित्र में हाइलाइट किए गए फ़ाइल प्रबंधक आइकन पर क्लिक करें:





  • डमी टेक्स्ट फ़ाइल बनाना

    अब अपने होम फोल्डर में कहीं भी राइट-क्लिक करें और दिखाई देने वाले मेनू से नया दस्तावेज़ विकल्प चुनें। फिर खाली दस्तावेज़ विकल्प चुनें। एक बार आपके होम फोल्डर में एक खाली दस्तावेज़ बन जाने के बाद, इसके लिए अपनी पसंद का नाम और उसके बाद .txt एक्सटेंशन प्रदान करें। इस उदाहरण में, हमने इसे ForEachLine.txt नाम दिया है।

  • एक डमी टेक्स्ट फ़ाइल बनाना2
    इसे खोलने के लिए इस टेक्स्ट फ़ाइल पर डबल क्लिक करें और फिर इसमें कोई भी रैंडम टेक्स्ट टाइप करें जैसा कि निम्न छवि में दिखाया गया है। इतना करने के बाद इस फाइल को सेव करके बंद कर दें।



  • एक डमी टेक्स्ट फ़ाइल बनाना3

    चरण # 2: बैश स्क्रिप्ट बनाना:

    अब उसी तरह से एक बैश फाइल बनाएं, जैसे आपने होम फोल्डर में टेक्स्ट फाइल बनाई है, सिवाय इसके कि इस बार, आपको .txt एक्सटेंशन के बजाय .sh एक्सटेंशन के बाद उसका नाम देना होगा। हमने अपनी बैश फ़ाइल को ForEachLine.sh नाम दिया है, लेकिन आप इसे अपनी पसंद का कोई भी नाम दे सकते हैं।
    बैश स्क्रिप्ट बनाना

    इस फ़ाइल पर डबल-क्लिक करके खोलें और फिर अपनी नई बनाई गई बैश फ़ाइल में नीचे दी गई छवि में दिखाई गई स्क्रिप्ट टाइप करें। यहां, पहली पंक्ति यह इंगित करने के लिए है कि निम्न स्क्रिप्ट एक बैश स्क्रिप्ट है। हमने बस फ़ाइल नाम का एक वेरिएबल बनाया है और इसे अपनी टेक्स्ट फ़ाइल का नाम इसके मान यानी ForEachLine.txt के रूप में असाइन किया है। फिर हमने लाइन्स नाम का एक वेरिएबल बनाया है और इसे $(cat $File) के बराबर कर दिया है। यहां, कैट कमांड हमारी टेक्स्ट फाइल की सामग्री को पढ़ता है और जब यह $ प्रतीक से पहले होता है, तो इस कमांड द्वारा पढ़ी गई सामग्री को लाइन्स वेरिएबल में संग्रहीत किया जाएगा। इस तरह ForEachLine.txt नाम की फाइल की सभी लाइन्स लाइन्स वेरिएबल में स्टोर हो जाएंगी। फिर हमने फॉर लूप लागू किया है जिसमें एक इटरेटर लाइन है। यह इटरेटर लाइन्स वेरिएबल पर काम करता है जिसे हमने ऊपर बनाया है और यह सभी लाइनों के माध्यम से एक-एक करके पुनरावृति करेगा। फिर किए गए ब्लॉक में, हमने इको कमांड का उपयोग करके इन सभी लाइनों को टर्मिनल पर प्रदर्शित किया है।
    बैश स्क्रिप्ट बनाना2

    चरण # 3: बैश स्क्रिप्ट चलाना:

    अब टर्मिनल को उबंटू 20.04 में लॉन्च करें और फिर ऊपर बनाई गई बैश स्क्रिप्ट को निष्पादित करने के लिए इसमें निम्न कमांड चलाएँ:
    बैश ForEachLine.sh
    बैश स्क्रिप्ट चलाना

    जब यह कमांड बैश स्क्रिप्ट को निष्पादित करने के लिए बनाएगी, तो आप अपने टेक्स्ट फ़ाइल की सभी पंक्तियों को अपने टर्मिनल पर देख पाएंगे जैसा कि निम्न छवि में दिखाया गया है:
    बैश स्क्रिप्ट चलाना

    विधि # 2: सभी पठन पंक्तियों को किसी अन्य फ़ाइल में सहेजने के लिए:

    इस पद्धति में, हमने टर्मिनल पर प्रदर्शित करने के बजाय सभी पठन पंक्तियों को एक नई टेक्स्ट फ़ाइल में सहेजने के लिए उपरोक्त विधि में बनाई गई बैश स्क्रिप्ट को थोड़ा संशोधित किया है। ऐसा करने के लिए, नीचे बताए गए चरणों का पालन करें:

    चरण # 1: ऊपर बनाई गई बैश स्क्रिप्ट को संशोधित करना और इसे चलाना:

    ऊपर दी गई विधि में आपके द्वारा बनाई गई बैश स्क्रिप्ट खोलें और इसे निम्न छवि में दिखाए अनुसार संशोधित करें। हमने डू-डन ब्लॉक में इको कमांड के बाद बस >> सिंबल और उसके बाद एक नया फाइल नाम जोड़ा है। यह संशोधन सभी पठन पंक्तियों को टर्मिनल पर प्रदर्शित करने के बजाय एक नई टेक्स्ट फ़ाइल में सहेज देगा। अब बैश स्क्रिप्ट को टर्मिनल के माध्यम से फिर से बैश कमांड के साथ बैश फ़ाइल नाम के साथ चलाएं। इस बार जब बैश स्क्रिप्ट चलेगी, तो यह एक नई टेक्स्ट फाइल बनाएगी जिसका नाम इस मामले में NewFile.txt है।
    ऊपर बनाई गई बैश स्क्रिप्ट को संशोधित करना और इसे चलाना1

    चरण # 2: नव निर्मित पाठ फ़ाइल तक पहुँचना:

    यह सत्यापित करने के लिए कि क्या सभी पठन लाइनें नई टेक्स्ट फ़ाइल में सहेजी गई हैं, आप अपने टर्मिनल में निम्न कमांड चलाकर उस फ़ाइल की सामग्री को आसानी से देख सकते हैं:
    बिल्ली NewFile.txt
    नव निर्मित टेक्स्ट फ़ाइल तक पहुँचना
    नीचे दी गई छवि में दिखाया गया आउटपुट आपको आश्वस्त करेगा कि सभी पठन पंक्तियों को नई टेक्स्ट फ़ाइल में कॉपी कर लिया गया है।
    नव निर्मित पाठ फ़ाइल तक पहुँचना2

    निष्कर्ष:

    इस तरह, आप फ़ाइल की प्रत्येक पंक्ति के लिए फ़ाइल की सभी पंक्तियों को पढ़ने और फिर इन पंक्तियों के साथ हेरफेर करने के लिए उपयोग कर सकते हैं। हमने इस लेख में अभी दो बुनियादी परिदृश्यों के बारे में बात की है, हालांकि, आप इस लूप का उपयोग अधिक जटिल समस्याओं के लिए भी कर सकते हैं।