Grep

Grep

मध्यम

परिचय

आपने एक स्थानीय पुस्तकालय में नौकरी कर ली है, जहाँ आप पुरानी किताबों के संग्रह को व्यवस्थित करने में मदद करते हैं। छात्र पाठक अक्सर अपने टर्म पेपर में उद्धृत करने के लिए आधे-अधूरे याद रह गए उद्धरण ढूँढते रहते हैं। हर किताब को शुरू से अंत तक खुद पढ़ने के बजाय, आप एक छोटा टूल बनाने का फैसला करते हैं, जो उन किताबों को स्कैन करके इन अधूरे उद्धरणों को खोज निकाले।

निर्देश

फाइलों में ऐसी लाइनें खोजिए जो सर्च स्ट्रिंग से मेल खाती हों, और मेल खाने वाली सभी लाइनें लौटाइए।

Unix का grep कमांड फाइलों में ऐसी लाइनें खोजता है जो किसी रेगुलर एक्सप्रेशन से मेल खाती हों। आपको एक सरल grep कमांड बनाना है, जो तय स्ट्रिंग खोज सके।

grep कमांड तीन आर्गुमेंट लेता है:

  1. वह स्ट्रिंग जिसे खोजना है।
  2. कमांड का व्यवहार बदलने के लिए शून्य या अधिक फ्लैग।
  3. एक या अधिक फाइलें जिनमें खोजना है।

इसके बाद यह दी गई फाइलों को उसी क्रम में पढ़ता है जिस क्रम में उनके नाम दिए गए हैं। फिर उन लाइनों को ढूँढ़ता है जिनमें सर्च स्ट्रिंग मौजूद हो, और अंत में उन लाइनों को उसी क्रम में लौटाता है जिस क्रम में वे मिली थीं। जब एक से अधिक फाइलों में खोजा जाता है, तो हर मेल खाने वाली लाइन के आगे उस फाइल का नाम और एक कोलन (':') लगा दिया जाता है।

फ्लैग

grep कमांड निम्नलिखित फ्लैग का समर्थन करता है:

  • -n आउटपुट की हर लाइन के आगे उसकी संख्या और एक कोलन (':') जोड़िए, और संख्या को फाइल के नाम के बाद रखिए (अगर नाम मौजूद हो)।
  • -l केवल उन फाइलों के नाम प्रदर्शित कीजिए जिनमें कम से कम एक मेल खाने वाली लाइन हो।
  • -i छोटे-बड़े अक्षरों में अंतर किए बिना मिलान कीजिए।
  • -v प्रोग्राम का व्यवहार उलट दीजिए, यानी उन सभी लाइनों को इकट्ठा कीजिए जो मेल नहीं खातीं।
  • -x केवल उन्हीं लाइनों को खोजिए जिनमें सर्च स्ट्रिंग पूरी लाइन से मेल खाती हो।

AWK ट्रैक की आवश्यकताओं में बदलाव

आपको उचित कमांड लाइन पार्सिंग लागू करने की ज़रूरत नहीं है: फ्लैग एक स्पेस-सेपरेटेड स्ट्रिंग में दिए गए हैं जिसे अलग करना आसान है।

gawk -f grep.awk -v flags="l v" -v pattern="hello" file1.txt file2.txt

वास्तविक grep की तरह, आपका प्रोग्राम नॉन-ज़ीरो एक्ज़िट स्टेटस लौटाएगा जब कोई मैच नहीं मिलेगा।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
AWK Exercism

Grep शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और AWK को 3 कॉन्सेप्ट92 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।