लिनक्स grep कमांड इनपुट फ़िल्टरिंग के लिए एक विधि के रूप में प्रयोग किया जाता है। जीआरईपी वैश्विक नियमित अभिव्यक्ति प्रिंटर के लिए खड़ा है और इसलिए इसे प्रभावी ढंग से उपयोग करने के लिए, आपको नियमित अभिव्यक्तियों के बारे में कुछ ज्ञान होना चाहिए।
इस लेख में, आप कई उदाहरण सीखेंगे जो आपको grep कमांड को समझने में मदद करेंगे।
09 का 01GREP का उपयोग कर एक फ़ाइल में एक स्ट्रिंग के लिए कैसे खोजें

कल्पना करें कि आपके पास निम्नलिखित बच्चों के पुस्तक शीर्षक वाले पुस्तकें नामक एक टेक्स्ट फ़ाइल है:
- रॉबिन हुड
- लिटिल रेड राइडिंग हुड
- पीटर पैन
- गोल्डीलॉक्स और तीन भालू
- स्नो व्हाइट और सात Dwarfs
- Pinnochio
- टोपी में बिल्ली
- तीन छोटे सूअर
- ग्रफेलो
- चार्ली एंड द चॉकलेट फ़ैक्टरी
शीर्षक में "द" शब्द के साथ सभी पुस्तकों को खोजने के लिए आप निम्न वाक्यविन्यास का उपयोग करेंगे:
grep किताबेंनिम्नलिखित परिणाम लौटाए जाएंगे:
- गोल्डीलॉक्स और तीन भालू
- स्नो व्हाइट और सात Dwarfs
- टोपी में बिल्ली
- तीन छोटे सूअर
- ग्रफेलो
- चार्ली एंड द चॉकलेट फ़ैक्टरी
प्रत्येक मामले में, शब्द "द" को हाइलाइट किया जाएगा।
खोज मामला संवेदनशील है, इसलिए यदि शीर्षकों में से एक "द" के बजाय "द" था तो यह वापस नहीं किया गया होता।
मामले को अनदेखा करने के लिए आप निम्न स्विच जोड़ सकते हैं:
grep किताबें --ignore-caseआप निम्नानुसार -i स्विच का उपयोग भी कर सकते हैं:
नीचे पढ़ना जारी रखें
02 में से 02वाइल्डकार्ड का उपयोग कर एक फ़ाइल में एक स्ट्रिंग के लिए खोजें
Grep कमांड बहुत शक्तिशाली है। आप परिणामों को फ़िल्टर करने के लिए पैटर्न मिलान तकनीकों की भीड़ का उपयोग कर सकते हैं।
इस उदाहरण में, मैं आपको दिखाऊंगा कि वाइल्डकार्ड का उपयोग करके फ़ाइल में स्ट्रिंग को कैसे खोजा जाए।
कल्पना कीजिए कि आपके पास निम्न स्कॉटलैंड स्थान नाम वाले स्थान नामक एक फ़ाइल है:
एबरडीनएबेरीस्ट्विथAberlourInverurieइन्वरनेसnewburghनया हिरणनया gallowayग्लासगोएडिनबर्गयदि आप नाम में इनवर वाले सभी स्थानों को निम्नलिखित वाक्यविन्यास का उपयोग करना चाहते हैं:
grep inver * स्थानोंतारांकन (*) वाइल्डकार्ड 0 या कई के लिए खड़ा है। इसलिए यदि आपके पास इनवर या इन्वरनेस नामक जगह है तो दोनों को वापस कर दिया जाएगा।
आप जिस अन्य वाइल्डकार्ड का उपयोग कर सकते हैं वह अवधि (।) है। आप इसे एक पत्र से मेल खाने के लिए उपयोग कर सकते हैं।
grep inver.r जगहेंउपरोक्त आदेश में इनवररी और इनवर्री नामक स्थानों को मिलेगा लेकिन इनवेरीरी नहीं मिलेगी क्योंकि एकल अवधि के अनुसार दो आर के बीच केवल एक वाइल्डकार्ड हो सकता है।
वाइल्डकार्ड की अवधि उपयोगी है लेकिन यदि आपके पास खोज रहे पाठ के हिस्से के रूप में कोई है तो यह समस्याएं पैदा कर सकता है।
उदाहरण के लिए डोमेन नामों की इस सूची को देखें
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- everydaylinuxuser.com
- google.co.uk
- google.au
- direct.gov.uk
सभी के बारे में .coms को खोजने के लिए आप निम्न वाक्यविन्यास का उपयोग करके खोज सकते हैं:
grep * के बारे में * डोमेन नामयदि सूची में निम्न नाम शामिल है तो उपरोक्त आदेश नीचे गिर जाएगा:
- everydaylinuxuser.com/about.html
इसलिए, आप निम्न वाक्यविन्यास आज़मा सकते हैं:
grep * about.com डोमेन नामयह ठीक काम करेगा जब तक कि निम्न नाम वाला कोई डोमेन न हो:
aboutycom.comवास्तव में about.com के लिए खोज करने के लिए आपको निम्नानुसार डॉट से बचने की आवश्यकता होगी:
grep * के बारे में .com डोमेन नामआपको दिखाने के लिए अंतिम वाइल्डकार्ड प्रश्न चिह्न है जो शून्य या एक वर्ण के लिए है।
उदाहरण के लिए:
grep? ber placenamesउपरोक्त आदेश aberdeen, aberystwyth या यहां तक कि बेरविक वापस आ जाएगा।
नीचे पढ़ना जारी रखें
03 का 03Grep का उपयोग कर लाइन की शुरुआत और अंत में स्ट्रिंग्स के लिए खोजें
कैरेट (^) और डॉलर ($) प्रतीक आपको लाइनों की शुरुआत और अंत में पैटर्न की खोज करने की अनुमति देता है।
कल्पना करें कि आपके पास निम्नलिखित टीम नामों के साथ फुटबॉल नामक एक फ़ाइल है:
- ब्लैकपूल
- लिवरपूल
- मैनचेस्टर सिटी
- लीसेस्टर सिटी
- मेनचेस्टर यूनाइटेड
- न्यूकैसल यूनाइटेड
- मैनचेस्टर के एफसी यूनाइटेड
यदि आप मैनचेस्टर के साथ शुरू हुई सभी टीमों को ढूंढना चाहते हैं तो आप निम्न वाक्यविन्यास का उपयोग करेंगे:
grep ^ मैनचेस्टर टीमोंउपरोक्त आदेश मैनचेस्टर सिटी और मैनचेस्टर यूनाइटेड लौटाएगा लेकिन मैनचेस्टर के एफसी यूनाइटेड नहीं।
वैकल्पिक रूप से, आप निम्न वाक्यविन्यास का उपयोग कर यूनाइटेड के साथ समाप्त होने वाली सभी टीमों को पा सकते हैं:
grep संयुक्त $ टीमेंउपरोक्त आदेश मैनचेस्टर यूनाइटेड और न्यूकैसल यूनाइटेड में वापस आएगा लेकिन मैनचेस्टर के एफसी यूनाइटेड नहीं।
04 का 04Grep का उपयोग कर मिलान की संख्या गिनती
यदि आप वास्तविक लाइनों को वापस नहीं करना चाहते हैं जो grep का उपयोग करके पैटर्न से मेल खाते हैं लेकिन आप बस यह जानना चाहते हैं कि आप निम्न वाक्यविन्यास का कितना उपयोग कर सकते हैं:
grep -c पैटर्न inputfileयदि पैटर्न दो बार मेल खाता था तो नंबर 2 वापस कर दिया जाएगा।
नीचे पढ़ना जारी रखें
05 में से 05Grep का उपयोग करके मेल नहीं खाते सभी शर्तों को ढूँढना
कल्पना करें कि आपके पास निम्नानुसार सूचीबद्ध देशों के साथ स्थान नामों की एक सूची है:
- aberdeen स्कॉटलैंड
- ग्लासगो स्कॉटलैंड
- लिवरपूल इंग्लैंड
- कोल्विन बे
- लंदन, इंग्लॆंड
आपने देखा होगा कि कोल्विन बे के साथ कोई देश संबद्ध नहीं है।
किसी देश के साथ सभी स्थानों की खोज करने के लिए आप निम्न वाक्यविन्यास का उपयोग कर सकते हैं:
grep भूमि $ स्थानोंकोल्विन बे को छोड़कर परिणाम रिटर्न सभी जगह होंगे।
यह स्पष्ट रूप से केवल उन स्थानों के लिए काम करता है जो भूमि (शायद ही वैज्ञानिक) में समाप्त होते हैं।
आप निम्न वाक्यविन्यास का उपयोग करके चयन को उलटा कर सकते हैं:
grep -v भूमि $ स्थानोंयह उन सभी स्थानों को मिलेगा जो भूमि के साथ खत्म नहीं हुए थे।
06 का 06Grep का उपयोग कर फ़ाइलों में खाली लाइनों को कैसे खोजें
कल्पना कीजिए कि आपके पास एक इनपुट फ़ाइल है जिसका उपयोग किसी तृतीय पक्ष एप्लिकेशन द्वारा किया जाता है जो फ़ाइल को पढ़ने को रोकता है जब इसे खाली रेखा मिलती है:
- aberdeen स्कॉटलैंड
- इनवरनेस स्कॉटलैंड
- लिवरपूल इंग्लैंड
- कोल्विन बे वेल्स
जब लिवरपूल के बाद एप्लिकेशन लाइन पर जाता है तो यह अर्थ पढ़ना बंद कर देगा कि कॉलविन बे पूरी तरह याद नहीं है।
आप निम्न वाक्यविन्यास के साथ रिक्त रेखाओं की खोज के लिए grep का उपयोग कर सकते हैं:
grep ^ $ स्थानोंदुर्भाग्यवश यह विशेष रूप से उपयोगी नहीं है क्योंकि यह केवल रिक्त रेखाएं देता है।
यह सुनिश्चित करने के लिए कि फ़ाइल निम्नानुसार मान्य है या नहीं, आप चेक के रूप में रिक्त रेखाओं की संख्या की गिनती प्राप्त कर सकते हैं:
grep -c ^ $ स्थानोंहालांकि लाइन नंबरों को जानने के लिए यह अधिक उपयोगी होगा जिसमें रिक्त रेखा है ताकि आप उन्हें बदल सकें। आप निम्न आदेश के साथ ऐसा कर सकते हैं:
grep -n ^ $ स्थानोंनीचे पढ़ना जारी रखें
07 का 07Grep का उपयोग कर अपरकेस या लोअरकेस अक्षरों के तारों के लिए कैसे खोजें
Grep का उपयोग करके आप निर्धारित कर सकते हैं कि फ़ाइल में कौन सी रेखाएं निम्नलिखित वाक्यविन्यास का उपयोग कर अपरकेस वर्ण हैं:
grep 'ए-जेड' फ़ाइल नामवर्ग ब्रैकेट आपको वर्णों की सीमा निर्धारित करने देता है। उपर्युक्त उदाहरण में यह किसी भी चरित्र से मेल खाता है जो ए और जेड के बीच है।
इसलिए लोअरकेस अक्षरों से मिलान करने के लिए आप निम्न वाक्यविन्यास का उपयोग कर सकते हैं:
grep 'a-z' फ़ाइल नामयदि आप केवल अक्षरों से मेल खाना चाहते हैं, न कि संख्या या अन्य प्रतीकों से आप निम्न वाक्यविन्यास का उपयोग कर सकते हैं:
grep 'ए-जेए-जेड' फ़ाइल नामआप निम्नानुसार संख्याओं के साथ ऐसा कर सकते हैं:
grep '0-9' फ़ाइल नाम 08 का 08Grep का उपयोग कर पैटर्न दोहराने के लिए देख रहे हैं
आप दोहराने वाले पैटर्न की खोज के लिए घुंघराले ब्रैकेट {} का उपयोग कर सकते हैं।
कल्पना कीजिए कि आपके पास फोन नंबरों के साथ एक फ़ाइल है:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
आप जानते हैं कि संख्या का पहला भाग तीन अंकों की आवश्यकता है और आप उन पंक्तियों को ढूंढना चाहते हैं जो इस पैटर्न से मेल नहीं खाते हैं।
पिछले उदाहरण से आप जानते हैं कि 0-9 सभी संख्याओं को फ़ाइल में लौटाता है।
इस उदाहरण में हम उन पंक्तियों को चाहते हैं जो तीन संख्याओं से शुरू होते हैं जिसके बाद एक हाइफ़न (-) होता है। आप निम्न वाक्यविन्यास के साथ ऐसा कर सकते हैं:
grep "^ 0-9 0-9 0-9 -" संख्याएंजैसा कि हम पिछले उदाहरणों से जानते हैं, कैरेट (^) का अर्थ है कि रेखा निम्नलिखित पैटर्न से शुरू होनी चाहिए।
0-9 0 और 9 के बीच किसी भी संख्या की खोज करेगा क्योंकि इसमें तीन बार शामिल है, यह 3 संख्याओं से मेल खाता है। आखिर में एक हाइफ़न यह इंगित करने के लिए है कि एक हाइफ़न तीन संख्याओं में सफल होना चाहिए।
घुंघराले ब्रैकेट का उपयोग करके आप खोज को निम्न प्रकार से कम कर सकते हैं:
grep "^ 0-9 {3 } -" संख्याएंस्लैश {ब्रैकेट से बच निकलता है ताकि यह नियमित अभिव्यक्ति के हिस्से के रूप में काम करता है लेकिन संक्षेप में यह कह रहा है कि यह क्या है 0-9 {3} जिसका अर्थ 0 और 9 के बीच तीन गुना है।
घुंघराले ब्रैकेट का भी निम्नानुसार उपयोग किया जा सकता है:
{5,10}{5,}{5,10} का अर्थ है कि जिस चरित्र की खोज की जा रही है उसे कम से कम 5 बार दोहराया जाना चाहिए, लेकिन 10 से अधिक नहीं, जबकि {5,} का अर्थ है कि चरित्र को कम से कम 5 बार दोहराया जाना चाहिए लेकिन यह उससे भी अधिक हो सकता है।
नीचे पढ़ना जारी रखें
09 में से 09Grep का उपयोग कर अन्य कमांड से आउटपुट का उपयोग करना
इस प्रकार हमने अलग-अलग फाइलों के भीतर मिलान पैटर्न को देखा है लेकिन grep पैटर्न को मिलान करने के लिए इनपुट के रूप में अन्य कमांड से आउटपुट का उपयोग कर सकता है।
इसका एक बड़ा उदाहरण ps कमांड का उपयोग कर रहा है जो सक्रिय प्रक्रियाओं को सूचीबद्ध करता है।
उदाहरण के लिए निम्न आदेश चलाएं:
पीएस-एफईआपके सिस्टम पर चल रहे सभी प्रक्रियाओं को प्रदर्शित किया जाएगा।
आप निम्नानुसार एक विशेष चल रही प्रक्रिया की खोज के लिए grep का उपयोग कर सकते हैं:
पीएस-एफआई | grep फ़ायरफ़ॉक्ससारांश
Grep कमांड एक मौलिक लिनक्स कमांड है और यह वह है जो सीखने के लायक है क्योंकि टर्मिनल का उपयोग करते समय फाइलों और प्रक्रियाओं की खोज करते समय यह आपके जीवन को अधिक आसान बना देगा।




