Grep . के माध्यम से मैच से पहले और बाद की लाइनें दिखाएं

Show Lines Before After Match Via Grep



कुछ फाइलों पर काम करते समय, कुछ विशिष्ट पैटर्न की खोज करते समय, और बहुत कुछ करते समय, लिनक्स सिस्टम में ग्रेप का व्यापक रूप से उपयोग किया गया है। इस बार, हम किसी विशिष्ट फ़ाइल में उपयोग किए गए मिलान किए गए कीवर्ड से पहले और बाद की पंक्तियों को प्रदर्शित करने के लिए grep कमांड का उपयोग कर रहे हैं। इस उद्देश्य के लिए, हम अपने पूरे ट्यूटोरियल गाइड में -A, -B और, -C फ्लैग का उपयोग करेंगे। इसलिए, आपको बेहतर समझ के लिए प्रत्येक चरण को पूरा करना होगा। सुनिश्चित करें कि आपके पास उबंटू 20.04 लिनक्स सिस्टम स्थापित है।

सबसे पहले, आपको grep पर काम करना शुरू करने के लिए अपना Linux कमांड लाइन टर्मिनल खोलना होगा। कमांड-लाइन टर्मिनल खोले जाने के ठीक बाद आप वर्तमान में अपने उबंटू सिस्टम की होम डायरेक्टरी में हैं। तो, नीचे दिए गए ls कमांड का उपयोग करके अपने लिनक्स सिस्टम की होम निर्देशिका में सभी फाइलों और फ़ोल्डरों को सूचीबद्ध करने का प्रयास करें, और आपको सब कुछ मिल जाएगा। आप देख सकते हैं, हमारे पास कुछ टेक्स्ट फ़ाइलें और कुछ फ़ोल्डर सूचीबद्ध हैं।







रास



उदाहरण 01: '-ए' और '-बी' का उपयोग करना

ऊपर दिखाई गई टेक्स्ट फाइलों से, हम इनमें से कुछ पर एक नज़र डालेंगे और उन पर grep कमांड को लागू करने का प्रयास करेंगे। आइए नीचे दिए गए लोकप्रिय कैट कमांड का उपयोग करके टेक्स्ट फ़ाइल one.txt को पहले खोलें:



$बिल्लीone.txt





हम सबसे पहले नीचे दिए गए grep कमांड का उपयोग करके इस टेक्स्ट फ़ाइल में कुछ विशिष्ट शब्द मिलान देखेंगे। हम grep निर्देश का उपयोग करके टेक्स्ट फ़ाइल one.txt में हम शब्द खोज रहे हैं। आउटपुट टेक्स्ट फ़ाइल से दो पंक्तियों को दिखाता है जिसमें हम हैं।

$पकड़हम one.txt



इसलिए, इस उदाहरण में, हम कुछ टेक्स्ट फाइलों में विशिष्ट शब्द मिलान से पहले और बाद की पंक्तियों को दिखाएंगे। तो उसी टेक्स्ट फ़ाइल one.txt का उपयोग करके हम नीचे दिए गए 3 पंक्तियों को प्रदर्शित करते हुए शब्द का मिलान कर रहे हैं। झंडा -बी पहले के लिए खड़ा है। आउटपुट विशिष्ट शब्द रेखा से पहले केवल 2 पंक्तियाँ दिखाता है क्योंकि फ़ाइल में किसी विशिष्ट शब्द की पंक्ति से पहले अधिक पंक्तियाँ नहीं होती हैं। यह उन पंक्तियों को भी दर्शाता है जिनमें वह विशिष्ट शब्द मौजूद है।

$पकड़-बी3हम one.txt

आइए हम इस फ़ाइल से उसी कीवर्ड का उपयोग करते हैं जो उस पंक्ति के बाद 3 पंक्तियों को प्रदर्शित करता है जिसमें हम शब्द हैं। ध्वज-ए बाद में प्रस्तुत करता है। आउटपुट फिर से केवल 2 लाइनें दिखाता है क्योंकि इसमें फ़ाइल में अधिक लाइनें नहीं हैं।

$पकड़-प्रति3हम one.txt

तो, आइए हम मिलान करने के लिए एक नए कीवर्ड का उपयोग करें और उस लाइन के पहले और बाद में लाइनों या पंक्तियों को प्रदर्शित करें जिसमें यह स्थित है। इसलिए हम मिलान करने के लिए कैन शब्द का उपयोग कर रहे हैं। इस मामले में लाइन नंबर समान हैं। मिलान किए गए शब्द के बाद की 3 पंक्तियों को grep कमांड का उपयोग करके नीचे प्रदर्शित किया जा सकता है।

$पकड़-प्रति3कर सकते हैं one.txt

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

$पकड़-बी3कर सकते हैं one.txt

उदाहरण 02: '-A' और '-B' का प्रयोग करना

आइए होम डायरेक्टरी से एक और टेक्स्ट फ़ाइल, दो.txt लें और नीचे दिए गए कैट कमांड का उपयोग करके इसकी सामग्री प्रदर्शित करें।

$बिल्लीदो.txt

आइए grep कमांड का उपयोग करके फ़ाइल two.txt से अधिकांश शब्द से पहले 5 लाइनें प्रदर्शित करें। लाइन में एक विशिष्ट शब्द होने से पहले आउटपुट 5 लाइनें दिखाता है।

$पकड़-बी5अधिकांश दो.txt

टेक्स्ट फाइल टू से मोस्ट वर्ड के बाद 5 लाइन दिखाने के लिए ग्रेप कमांड नीचे दी गई है।

$पकड़-प्रति5अधिकांश दो.txt

आइए खोजे जाने वाले कीवर्ड को बदलें। हम इस बार मिलान करने के लिए एक कीवर्ड के रूप में उपयोग करेंगे। टेक्स्ट फ़ाइल के वर्ड से पहले 2 लाइन प्रदर्शित करें। आउटपुट के कीवर्ड के लिए दो लाइन दिखाता है क्योंकि यह फाइल में दो बार आता है। इस प्रकार आउटपुट में 2 से अधिक लाइनें होती हैं।

$पकड़-बी2दो का। txt

अब फ़ाइल की 2 पंक्तियों को प्रदर्शित करना। आउटपुट फिर से 2 से अधिक लाइनों को प्रदर्शित करता है।

$पकड़-प्रति2दो का। txt

उदाहरण 03: '-सी' का प्रयोग करना

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

$बिल्लीone.txt

हम मिलान के लिए खोजशब्द के रूप में समाज को चुनते हैं। नीचे दिया गया grep कमांड उस लाइन के पहले 2 लाइन और उस लाइन के बाद 2 लाइन प्रदर्शित करेगा जिसमें इसमें समाज शब्द शामिल है। आउटपुट विशिष्ट शब्द रेखा से पहले एक पंक्ति और उसके बाद 2 पंक्तियाँ दिखाता है।

$पकड़-सी2समाज एक.txt

आइए नीचे दिए गए कैट कमांड का उपयोग करके फ़ाइल two.txt की सामग्री देखें।

$बिल्लीदो.txt

इस उदाहरण में, हम कविताओं को मिलान करने के लिए एक कीवर्ड के रूप में उपयोग कर रहे हैं। तो, इसके लिए नीचे दिए गए आदेश को निष्पादित करें। आउटपुट दो पंक्तियों से पहले और दो पंक्तियों से मेल खाने वाले शब्द के बाद दिखाता है।

$पकड़-सी2कविताएं दो.txt

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

$पकड़-सी2कविताएं दो.txt

निष्कर्ष

हम grep निर्देश का उपयोग करते हुए विशिष्ट शब्द के पहले और बाद की पंक्तियों को प्रदर्शित करने में सफल होते हैं।