Grep के साथ एक शब्द को कैसे बाहर निकालें

Grep कमांड लाइन उपकरण पंक्तियों और स्निपेट्स के लिए टेक्स्ट डेटा के माध्यम से खोजने के लिए बेहद उपयोगी है जो परिभाषित स्ट्रिंग, वर्ण, शब्द या नियमित अभिव्यक्ति से मेल खाते हैं। जबकि grep के अधिकांश उपयोग सिंटैक्स मैचों के लिए डेटा सॉर्ट करने के लिए हैं, तो क्या होगा यदि आप इसके बजाय grep के साथ एक शब्द या स्ट्रिंग को बाहर करना चाहते हैं? Grep के साथ लाइन मैचों को छोड़कर grep में मिलान ढूंढने और प्रिंट करने के समान ही उतना ही उपयोगी है, इसलिए चलिए स्ट्रिंग मैचों को बाहर करने और grep के साथ शब्दों को बाहर करने के तरीके को कवर करते हैं।


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

Grep के साथ एक एकल शब्द को कैसे बाहर निकालें

एक स्ट्रिंग या वाक्यविन्यास मिलान के साथ लाइनों को बाहर करने का सबसे आसान तरीका grep और thev ध्वज का उपयोग कर है।

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

cat example.txt | grep -v "ThisWord"

आउटपुट example.txt टेक्स्ट फ़ाइल होगी लेकिन किसी भी पंक्ति को छोड़कर जिसमें "यहवार्ड" वाला स्ट्रिंग मिलान होता है।

आप फ़ाइलों पर सीधे grep का उपयोग कर सकते हैं और शब्दों या वाक्यविन्यास के आधार पर लाइन मैचों को बहिष्कृत कर सकते हैं, जैसे:

grep -v "ThisWord" example.txt

अपने विशेष वर्कफ़्लो के लिए जो कुछ भी सबसे अच्छा काम करता है उसका उपयोग करें।

Grep के साथ एकाधिक स्ट्रिंग्स या शब्दों को कैसे निकालें

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

सबसे पहले grep को पाइप की गई फ़ाइल पर बिल्ली का उपयोग करने का उपरोक्त उदाहरण लें, और दो शब्दों से मेल खाने वाली किसी भी पंक्ति को बाहर कर दें; "वर्ड 1" और "वर्ड 2", यह निम्न की तरह दिखेगा:

cat example.txt | grep -v -e "Word1" -e "Word2"

"वर्ड 1" या "वर्ड 2" वाली कोई भी पंक्ति मुद्रित परिणामों से बाहर की जाएगी।

आप grep का उपयोग सीधे फाइलों पर भी पहले ही कर सकते हैं:

grep -v -e "Word1" -e "Word2" example.txt

एक और तरीका यह है कि प्रत्येक मैच को अलग करने के लिए पाइप का उपयोग करके grep के साथ क्या बाहर निकालना है, इस तरह:

grep -Ev "word1|word2" example.txt

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

बढ़िया, मुझे grep के साथ डेटा को छोड़ने का एक उपयोगी उदाहरण दिखाओ!

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

उदाहरण में यहां हम डिफ़ॉल्ट स्ट्रिंग मैचों के लिए कमांड इतिहास प्रिंट करेंगे, लेकिन "com.apple.itunes" द्वारा परिभाषित आईट्यून्स के साथ होने वाली किसी भी चीज़ को बहिष्कृत करें:

history |grep "defaults write" |grep -v -e "com.apple.itunes"

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

यदि आपके पास grep के साथ मैचों को छोड़ने का कोई विशेष रूप से आसान उपयोग है, तो नीचे दी गई टिप्पणियों में उन्हें हमारे साथ साझा करें! और यदि आपने इस आलेख का आनंद लिया है, तो आप निश्चित रूप से यहां हमारे कई कमांड लाइन आलेखों के माध्यम से ब्राउज़ करना पसंद करेंगे जहां सीखने के लिए बहुत कुछ है!