grep वाले शब्द को कैसे बाहर निकालें
विषयसूची:
grep कमांड लाइन टूल उन पंक्तियों और स्निपेट्स के लिए टेक्स्ट डेटा के माध्यम से खोजने के लिए बेतहाशा उपयोगी है जो एक परिभाषित स्ट्रिंग, वर्ण, शब्द या नियमित अभिव्यक्ति से मेल खाते हैं। जबकि grep के अधिकांश उपयोग सिंटैक्स मैचों के लिए डेटा को सॉर्ट करने के लिए हैं, क्या होगा यदि आप इसके बजाय grep के साथ एक शब्द या स्ट्रिंग को बाहर करना चाहते हैं? Grep के साथ लाइन मिलानों को बाहर करना उतना ही उपयोगी है जितना कि grep में मिलानों को खोजना और प्रिंट करना, तो आइए देखें कि कैसे स्ट्रिंग मिलानों को बाहर करना है और शब्दों को grep से बाहर करना है।
स्पष्ट रूप से आप इसे उपयोगी खोजने के लिए कुछ कमांड लाइन अनुभव और grep के संपर्क में आना चाहेंगे। यदि आप साथ चलना चाहते हैं, तो आप टर्मिनल एप्लिकेशन खोल सकते हैं और इसे स्वयं आज़मा सकते हैं। चूँकि grep एक OS अज्ञेयवादी उपयोगिता है, आप Mac OS, Linux, unix, या जो कुछ भी आपके पास है उसमें grep का उपयोग करने वाली बहिष्कृत चाल का उपयोग कर सकते हैं।
ग्रेप के साथ एक शब्द कैसे निकालें
किसी स्ट्रिंग या सिंटैक्स मैच वाली लाइनों को बाहर करने का सबसे सरल तरीका grep और -v फ्लैग का उपयोग करना है।
उदाहरण के लिए, मान लें कि हम कमांड लाइन पर फ़ाइल प्रिंट करने के लिए कैट का उपयोग कर रहे हैं, लेकिन हम "दिसवर्ड" शब्द वाली सभी पंक्तियों को बाहर करना चाहते हैं, तो सिंटैक्स इस तरह दिखेगा:
cat example.txt | grep -v ThisWord"
आउटपुट example.txt टेक्स्ट फ़ाइल होगा, लेकिन किसी भी ऐसी लाइन को छोड़कर जिसमें “दिसवर्ड” के साथ स्ट्रिंग मैच हो।
आप फ़ाइलों पर सीधे grep का उपयोग कर सकते हैं और शब्दों या सिंटैक्स के आधार पर लाइन मिलान को बाहर कर सकते हैं, जैसे:
"grep -v ThisWord>"
अपने विशिष्ट वर्कफ़्लो के लिए सबसे अच्छा काम करने वाले का उपयोग करें।
grep के साथ एकाधिक स्ट्रिंग्स या शब्दों को कैसे बाहर निकालें
अब जब आप जानते हैं कि एक शब्द के लिए मिलान कैसे निकालना है, तो अगला स्पष्ट प्रश्न ग्रेप के साथ कई शब्दों को बाहर करने के बारे में है। यह समान रूप से सरल है, और -v फ्लैग के साथ-साथ -e फ्लैग का उपयोग करके इसे पूरा करने के कुछ अलग तरीके हैं।
सबसे पहले grep पर पाइप की गई फ़ाइल पर cat का उपयोग करने का उपरोक्त उदाहरण लेते हैं, और दो शब्दों से मेल खाने वाली किसी भी पंक्ति को बाहर करते हैं; “Word1” और “Word2”, यह इस तरह दिखेगा:
"cat example.txt | grep -v -e Word1 -e Word2"
“Word1” या “Word2” वाली कोई भी लाइन प्रिंट किए गए नतीजों से बाहर कर दी जाएगी.
आप फ़ाइलों पर सीधे grep का उपयोग पहले की तरह ही कर सकते हैं:
"grep -v -e Word1 -e Word2 example.txt"
एक और तरीका यह है कि प्रत्येक मैच को अलग करने के लिए एक पाइप का उपयोग करके ग्रेप के साथ क्या बाहर करना है, इसे अलग करना है, जैसे:
grep -Ev word1|word2 example.txt"
यदि आप एक उदाहरण पाठ फ़ाइल पर इनमें से किसी भी विकल्प का परीक्षण करते हैं, तो आप पाएंगे कि आपके द्वारा अपनाए गए दृष्टिकोण की परवाह किए बिना आउटपुट समान है, प्रत्येक उन पंक्तियों को छोड़कर जिनमें लक्षित वाक्यांश, वाक्यविन्यास, शब्द, या शामिल हैं पाठ मिलान।
बढ़िया, मुझे grep से डेटा निकालने का एक उपयोगी उदाहरण दिखाएं!
एक व्यावहारिक उदाहरण के लिए जो उन्नत मैक उपयोगकर्ताओं को मददगार लग सकता है, हम ग्रेप एक्सक्लूज़न का उपयोग कर सकते हैं जब कमांड लाइन इतिहास को प्रिंट और क्वेरी करते समय डिफॉल्ट मैच खोजने के लिए पहले से निष्पादित कमांड को खोजने के लिए, लेकिन कुछ चयनित डिफॉल्ट स्ट्रिंग्स को छोड़कर आउटपुट।
यहां दिए गए उदाहरण में हम डिफ़ॉल्ट स्ट्रिंग मिलानों के लिए कमांड इतिहास प्रिंट करेंगे, लेकिन "com.apple.itunes" द्वारा परिभाषित iTunes के साथ मेल खाने वाली किसी भी चीज़ को बाहर कर देंगे:
"history |grep defaults write |grep -v -e com.apple.itunes"
तो यदि आप साथ चल रहे हैं, तो यह "डिफ़ॉल्ट राइट" कमांड के सभी ऐतिहासिक निष्पादनों की रिपोर्ट करेगा, लेकिन आईट्यून्स एप्लिकेशन से संबंधित किसी भी चीज़ को छोड़कर। अच्छा हुह?
यदि आपके पास grep के साथ मिलानों को बाहर करने का कोई विशेष उपयोगी उपयोग है, तो उन्हें नीचे टिप्पणी में हमारे साथ साझा करें! और अगर आपको यह लेख अच्छा लगा हो, तो आप लगभग निश्चित रूप से हमारे कई कमांड लाइन लेखों के माध्यम से ब्राउज़ करना पसंद करेंगे जहाँ सीखने के लिए बहुत कुछ है!