Grep

Grep

मध्यम

परिचय

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

निर्देश

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

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

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

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

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

फ्लैग

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

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

Arturo के लिए विशेष निर्देश

अधिकांश Arturo अभ्यासों के विपरीत, src/grep.art को टेस्ट सूट सीधे इंपोर्ट नहीं करेगा। इसके बजाय, आपका हल एक स्वतंत्र Arturo स्क्रिप्ट के रूप में चलाया जाएगा, जिसे कमांड-लाइन आर्गुमेंट की एक श्रृंखला मिलेगी। इन कमांड-लाइन आर्गुमेंट तक पहुँचने के लिए आप argarg या argsargs का उपयोग कर सकते हैं। इनमें शून्य या अधिक फ्लैग, एक सर्च पैटर्न, और एक या अधिक फाइलनाम होते हैं। ये फाइलें टेस्ट सूट द्वारा रनटाइम पर बनाई और डेटा से भरी जाती हैं। आपके हल को माँगी गई फाइल पढ़नी होगी और अपेक्षित आउटपुट मानक आउटपुट पर लिखना होगा।

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

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

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