Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Grep में महारत हासिल करें: आसानी से कई शब्दों, स्ट्रिंग्स, और पैटर्न को खोजें

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

Grep क्या है?

जब हम grep का उल्लेख करते हैं, तो हम कमांड-लाइन फ़ंक्शन के बारे में बात कर रहे हैं। Grep का अर्थ ग्लोबल रेगुलर एक्सप्रेशन प्रिंट है। संक्षेप में, यह इनपुट फ़ाइलों को उन लाइनों की तलाश में खोजेगा जो एक निश्चित नियमित अभिव्यक्ति से मेल खाती हैं। यह फिर प्रत्येक लाइन को मानक आउटपुट के लिए लिखकर परिणाम लौटाता है।

grep उपयोगिता तीन अभिव्यक्ति सिंटैक्स के लिए उपयुक्त है। इन्हें बेसिक, एक्सटेंडेड, या पर्ल-संगत के रूप में निर्दिष्ट किया जा सकता है। यदि कोई नियमित अभिव्यक्ति सिंटैक्स निर्दिष्ट नहीं है, तो GNY grep खोज पैटर्न को बेसिक अभिव्यक्ति के रूप में सेट करेगा।

एकाधिक पैटर्न के लिए Grep

यदि आप एकाधिक पैटर्न खोजना चाहते हैं, तो आप OR ऑपरेटर का उपयोग कर सकते हैं, जिसे अल्टरनेशन ऑपरेटर कहा जाता है। यह ऑपरेटर/पाइप इस तरह दिखता है: |

यह उपयोगकर्ता को सभी संभावित मिलानों को निर्दिष्ट करने में सक्षम करेगा, चाहे वे अभिव्यक्ति सेट हों या शाब्दिक स्ट्रिंग्स। जैसे, एकाधिक पैटर्न खोजने के लिए, इनपुट होगा:

$ grep 'first pattern\|second pattern' filename

‘first pattern‘ और ‘second pattern‘ को उन संभावित पैटर्न से बदला जाएगा जिन्हें आप खोज रहे हैं। यह नियमित अभिव्यक्ति – ‘first pattern\|second pattern‘ – हमेशा सिंगल कोट्स में संलग्न होनी चाहिए। पाइप प्रतीक अल्टरनेशन ऑपरेटर के रूप में समर्थित नहीं है और जैसे कि grep को पाइप को अलग तरीके से निर्देश देने के लिए एस्केप (बैकस्लैश) वर्ण की आवश्यकता होती है।

इच्छित पैटर्न को एक्सटेंडेड नियमित अभिव्यक्ति के रूप में निर्दिष्ट करने के लिए, ‘-e‘ या ‘—extended-regexp‘ का उपयोग किया जा सकता है। उदाहरण के लिए:

$ grep -E 'first pattern|second pattern' filename

एक्सटेंडेड रेगेक्स में, आपको पाइप को एस्केप करने की आवश्यकता नहीं है।

आप फ़ाइल द्वारा खोज सकते हैं, इसलिए presentation.txt के भीतर पैटर्न खोजना इस तरह दिख सकता है:

$ grep -E 'first pattern|second pattern' presentation.txt

आउटपुट उन स्ट्रिंग्स को दिखाएगा जिन्हें आप grep करना चाहते हैं हाइलाइट किए गए।

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

$ grep -E 'first pattern|second pattern' /home/presentation.txt

एकाधिक स्ट्रिंग्स के लिए Grep

सबसे बुनियादी पैटर्न शाब्दिक स्ट्रिंग्स हैं। एकाधिक स्ट्रिंग्स खोजने के लिए, आप इन्हें grep कमांड के बाद दर्ज करेंगे। कल्पना करें कि हम ‘one‘, ‘two‘, और ‘three‘ खोज रहे हैं। यह इस तरह दिख सकता है:

$ grep 'one\|two\|three'

उस कमांड के बाद उस फ़ाइल को फॉलो करें जिसमें आप खोज रहे हैं। यदि आप एक्सटेंडेड नियमित अभिव्यक्ति का उपयोग करके खोज रहे हैं, तो आप अनिवार्य रूप से ‘\‘ को हटा रहे हैं। उदाहरण के लिए:

$ grep -E 'one|two|three'

केस संवेदनशीलता को अनदेखा करें

कमांड ‘grep’ केस संवेदनशील है। अक्षर केस को अनदेखा करने के लिए, ‘-i‘ या ‘—ignore-case‘ विकल्प के साथ आमंत्रित करें। उदाहरण के लिए:

$ grep -i 'one\|two\|three'

एकाधिक मिलानों की गणना प्रदर्शित करना

यदि आप एक लॉग फ़ाइल के भीतर हैं और जानना चाहते हैं कि चेतावनी और त्रुटि संदेशों की संख्या बढ़ती है या नहीं, लेकिन पूरी विस्तृत परिणाम देखे बिना, आप ‘-c‘ का उपयोग कर सकते हैं। myapp.log फ़ाइल के भीतर एकाधिक मिलानों की गणना करने के लिए, यह इस तरह दिख सकता है:

grep -c 'one\|two\|three' /var/log/myapp.log

विशिष्ट फ़ाइल प्रकारों में एकाधिक पैटर्न Grep

एकाधिक स्ट्रिंग्स को एक निश्चित फ़ाइल प्रकार में खोजा जा सकता है। यह आपको एक निर्देशिका के भीतर सभी टेक्स्ट फ़ाइलों या सभी लॉग फ़ाइलों को खोजने की अनुमति देता है। फ़ाइल नाम के बजाय फ़ाइल एक्सटेंशन के साथ एक एस्टेरिस्क का उपयोग करने से grep को निर्देश मिलेगा। उपरोक्त त्रुटि संदेशों के उदाहरण का उपयोग करते हुए, सभी लॉग फ़ाइलों के माध्यम से देखना इस तरह दिख सकता है:

grep -c 'one\|two\|three' /var/log/*.log

एकाधिक मिलानों के लिए रिकर्सिवली खोजें

एस्टेरिस्क उपयोग में होने पर grep केवल वर्तमान निर्देशिका के भीतर खोजेगा। यदि आपको सभी उपनिर्देशिकाओं को शामिल करने की आवश्यकता है, तो ‘-R’ विकल्प का उपयोग किया जा सकता है:

grep -R 'one\|two\|three' /var/log/*.log

यह तब निर्दिष्ट var/log/ निर्देशिका और उपनिर्देशिकाओं के भीतर पाई गई सभी फ़ाइलों के लिए परिणाम लौटाएगा।

सटीक मिलानों के लिए grep का उपयोग करना

‘grep’ कमांड उन सभी परिणामों को प्रदर्शित करेगा जहां स्ट्रिंग एम्बेडेड भी है और न केवल सटीक मिलान। उदाहरण के लिए, ‘value’ खोजते समय यह उन लाइनों को प्रिंट करेगा जिनमें ‘values’ और ‘valued’ भी शामिल हैं। यदि आप केवल पूरे शब्द के सटीक मिलान वाली लाइनों को लौटाना चाहते हैं, तो आप ‘-w‘ या ‘—word-regexp‘ का उपयोग कर सकते हैं। यह ऐसा दिख सकता है यदि आप ‘one‘, ‘two‘, और ‘three‘ के सटीक मिलान खोज रहे हैं:

$ grep -w 'one\|two\|three'

वर्ण अल्फ़ान्यूमेरिक के समावेशी हैं, इसलिए 0-9 और a-z प्लस अंडरस्कोर वर्ण। किसी भी अन्य को गैर-शब्द वर्ण माना जाता है।


  1. फ्री विंडोज 10: कानूनी रूप से प्राप्त और सुरक्षित रूप से सक्रिय कैसे करें फ्री विंडोज 10: कानूनी रूप से प्राप्त और सुरक्षित रूप से सक्रिय कैसे करें

    इस लेख में, हम विंडोज 10 को मुफ्त में प्राप्त करने के लिए उपलब्ध विभिन्न तरीकों का पता लगाएंगे। हम चार विशिष्ट विकल्प साझा करेंगे और बताएंगे कि इनमें से प्रत्येक विकल्प कानूनी है या नहीं। उम्मीद है, इस लेख को पढ़ने के बाद, आप विंडोज 10 एक्टिवेशन कैसे काम करता है और माइक्रोसॉफ्ट इसके लिए शुल्क क्यों

  1. Excel फाइलों को निर्बाध रूप से साझा करें रीयल-टाइम टीम सहयोग के लिए Excel फाइलों को निर्बाध रूप से साझा करें रीयल-टाइम टीम सहयोग के लिए

    टीम या संगठन में एक साथ काम करने के लिए, आपको अक्सर Excel फाइल साझा करने की आवश्यकता हो सकती है। ताकि आप सभी एक ही समय पर वर्कबुक को संपादित कर सकें। इस निर्देशात्मक सत्र में, मैं चर्चा करूंगा कि आप कई उपयोगकर्ताओं के लिए रीयल-टाइम सहयोग करने के लिए Excel फाइल कैसे साझा कर सकते हैं। कई उपयोगकर्ता

  1. 2022 में विंडोज 10 को मैन्युअल रूप से जांचें और अपडेट कैसे करें 2022 में विंडोज 10 को मैन्युअल रूप से जांचें और अपडेट कैसे करें

    विंडोज अपडेट की जांच करना और इंस्टॉल करना विंडोज को सुचारू रूप से चलाने का एक शानदार और प्रभावी तरीका है। इसलिए, समय-समय पर मुद्दों को ठीक करने, सुरक्षा कमजोरियों को पैच करने और अन्य चीजों के लिए, माइक्रोसॉफ्ट विंडोज अपडेट जारी करता रहता है, और सुरक्षा विशेषज्ञ भी इसकी सिफारिश करते हैं। साथ ही, रैंस