ग्रेप (grep)

एक नियमित अभिव्यक्ति से मेल खाने वाली लाइनों के लिए सादा-टेक्स्ट डेटा सेट खोजने के लिए एक कमांड-लाइन उपयोगिता है। इसका नाम एड कमांड (ग्लोबल / रेगुलर एक्सप्रेशन सर्च / और प्रिंट) से आया है, जिसका प्रभाव समान है।   मूल रूप से यूनिक्स ऑपरेटिंग सिस्टम के लिए विकसित किया गया था, किंतु बाद में सभी यूनिक्स जैसी प्रणालियों और कुछ अन्य जैसे ओएस-9 के लिए उपलब्ध हो गया।

इतिहास
नाम दिए जाने से पहले, grep कुछ पैटर्न के लिए फ़ाइलें खोजने के लिए केन थॉम्पसन द्वारा लिखी गई एक निजी उपयोगिता थी। इसके अस्तित्व से अनभिज्ञ डौग मैकलरॉय ने थॉम्पसन से ऐसा कार्यक्रम लिखने के लिए कहा। यह उत्तर देते हुए कि वह रात भर ऐसी उपयोगिता के बारे में सोचेंगे, थॉम्पसन ने वास्तव में बग्स को ठीक किया और  ("खोज" के लिए संक्षिप्त) नामक अपने स्वयं के कार्यक्रम में लगभग एक घंटे तक सुधार किया। अगले दिन उन्होंने मैकिलरॉय को कार्यक्रम प्रस्तुत किया, जिन्होंने कहा कि यह बिल्कुल वही था जो वह चाहते थे। थॉम्पसन का विवरण इस धारणा को स्पष्ट कर सकता है कि ग्रेप रातोरात लिखा गया था।

थॉम्पसन ने ली ई. मैकमोहन की सहायता करने के लिए पीडीपी-11 असेम्बली भाषा में पहला संस्करण लिखा, जो अलग-अलग पेपरों के लेखकत्व का निर्धारण करने के लिए द फेडरलिस्ट पेपर्स के टेक्स्ट का विश्लेषण करता है। एड (टेक्स्ट एडिटर) (थॉम्पसन द्वारा लिखित) में नियमित अभिव्यक्ति का समर्थन था किंतु इतनी बड़ी मात्रा में टेक्स्ट पर उपयोग नहीं किया जा सकता था, इसलिए थॉम्पसन ने उस कोड को एक स्टैंडअलोन उपकरण में उद्धृत किया गया। उन्होंने नाम इसलिए चुना क्योंकि एड में, कमांड g/re/p एक निर्दिष्ट पैटर्न से मेल खाने वाली सभी पंक्तियों को प्रिंट करेगा।   पहले संस्करण 4 यूनिक्स में सम्मिलित किया गया था। यह कहते हुए कि इसे "सामान्यतः प्रोटोटाइपिकल सॉफ़्टवेयर उपकरण के रूप में उद्धृत किया जाता है", मैक्लेरॉय ने   को यूनिक्स में थॉम्पसन के उपकरण दर्शन को "अपरिवर्तनीय रूप से समाहित करने" का श्रेय दिया।

कार्यान्वयन
कई ऑपरेटिंग सिस्टम और सॉफ्टवेयर विकास परिवेशों में विभिन्न प्रकार के  कार्यान्वयन उपलब्ध हैं।  प्रारंभिक वेरिएंट में   और  सम्मिलित थे, जिन्हें संस्करण 7 यूनिक्स में प्रस्तुत किया गया था।  " संस्करण केन थॉम्पसन के मूल नियमित अभिव्यक्ति कार्यान्वयन के बाद अल्फ्रेड अहो द्वारा जोड़े गए विस्तारित नियमित अभिव्यक्ति वाक्यविन्यास का समर्थन करता है। " " संस्करण अहो-कोरासिक स्ट्रिंग मिलान एल्गोरिदम का उपयोग करके निश्चित स्ट्रिंग्स की किसी भी सूची की खोज करता है। इन वेरिएंट के बायनेरिज़ आधुनिक सिस्टम में उपस्थित हैं, सामान्यतः   से लिंक होते हैं या उपयुक्त ध्वज के साथ ग्रेप को शेल स्क्रिप्ट के रूप में कहते हैं, उदाहरण के लिए  .  और , जबकि सामान्यतः पॉज़िक्स सिस्टम पर तैनात किए जाते हैं, पॉज़िक्स विनिर्देश उनके व्यापक अस्तित्व का उल्लेख करता है, वास्तव में पॉज़िक्स का भाग नहीं हैं।

अन्य आदेशों में यह इंगित करने के लिए शब्द grep होता है कि वे खोज उपकरण हैं, सामान्यतः वे जो नियमित अभिव्यक्ति मिलानों पर निर्भर करते हैं। पीजीआरपी उपयोगिता, उदाहरण के लिए, उन प्रक्रियाओं को प्रदर्शित करती है जिनके नाम किसी दिए गए रेगुलर एक्सप्रेशन से मेल खाते हैं।

पर्ल प्रोग्रामिंग भाषा में, grep बिल्ट-इन कार्य का नाम है जो एक सूची में ऐसे तत्वों को ढूंढता है जो एक निश्चित संपत्ति को संतुष्ट करते हैं। यह उच्च-क्रम कार्य सामान्यतः अन्य भाषाओं में या   नाम दिया जाता है।

कमांड  का कार्यान्वयन है जो पर्ल रेगुलर एक्सप्रेशन सिंटैक्स का उपयोग करता है। इसी तरह की कार्यक्षमता को -P ध्वज के साथ   के जीएनयू संस्करण में प्रयुक्त किया जा सकता है।

के पोर्ट (उदाहरण के लिए साइगविन और ग्नूविन32 के अंदर) माइक्रोसॉफ्ट विंडोज के तहत भी चलते हैं। विंडोज़ के कुछ संस्करणों में समान  या  कमांड की सुविधा है।

एक  कमांड एमएसएक्स-डॉस संस्करण 2 के लिए एएससीआईआई के एमएसएक्स-डॉस2 टूल्स का भी भाग है।

, egrep, और fgrep कमांड्स को IBM i ऑपरेटिंग सिस्टम में पोर्ट किया गया है। सॉफ़्टवेयर एडोब इनडिज़ाइन में खोज/परिवर्तन संवाद बॉक्स "GREP" टैब में GREP कार्य (CS3 संस्करण (2007) से) है, और पैराग्राफ शैलियों "GREP शैलियों" में इनडिज़ाइन CS4 के साथ प्रस्तुत किया गया है।

अग्रेप
agrep (अनुमानित grep) तब भी मेल खाता है जब टेक्स्ट केवल लगभग खोज पैटर्न में फिट बैठता है।

यह निम्नलिखित मंगलाचरण फ़ाइल मायफ़ाइल में नेटमास्क पाता है, किंतु कोई भी अन्य शब्द जो इससे प्राप्त किया जा सकता है, दो से अधिक प्रतिस्थापन नहीं दिए गए हैं। agrep -2 netmasks myfile यह उदाहरण निकटतम के साथ मिलानों की एक सूची तैयार करता है, जो कि सबसे कम प्रतिस्थापन वाले पहले सूचीबद्ध हैं। आदेश ध्वज B का अर्थ सर्वोत्तम है: agrep -B netmasks myfile

क्रिया के रूप में प्रयोग
दिसंबर 2003 में, ऑक्सफोर्ड इंग्लिश डिक्शनरी ऑनलाइन ने grep को संज्ञा और क्रिया दोनों के रूप में जोड़ा गया था।

एक सामान्य क्रिया का उपयोग वाक्यांश है "आप मृत पेड़ों को नहीं पकड़ सकते" - जिसका अर्थ है कि कोई व्यक्ति डिजिटल मीडिया के माध्यम से अधिक आसानी से जैसे उपकरण का उपयोग करके खोज सकता है, अतिरिक्त हार्ड कॉपी के (यथार्त "मृत पेड़ों" से बना हुआ) जो इस संदर्भ में कागज के लिए अपच है)।

यह भी देखें

 * बॉयर-मूर स्ट्रिंग-सर्च एल्गोरिथम
 * agrep, एक अनुमानित स्ट्रिंग-मैचिंग कमांड
 * फाइंड (विंडोज़) या फाइंडस्ट्र, एक डॉस और विंडोज कमांड जो साधारण के समान टेक्स्ट खोज करता है
 * फाइंड (यूनिक्स), एक यूनिक्स कमांड जो विशेषता द्वारा फाइलों को खोजता है, से बहुत अलग है
 * यूनिक्स कमांड की सूची
 * एनजीआरईपी, नेटवर्क

संदर्भ

 * Notes


 * Hume, Andrew Grep wars: The strategic search initiative. In Peter Collinson, editor, Proceedings of the EUUG Spring 88 Conference, pages 237–245, Buntingford, UK, 1988. European UNIX User Group.
 * Hume, Andrew Grep wars: The strategic search initiative. In Peter Collinson, editor, Proceedings of the EUUG Spring 88 Conference, pages 237–245, Buntingford, UK, 1988. European UNIX User Group.

बाहरी संबंध

 * GNU Grep official website
 * GNU Grep manual
 * "why GNU grep is fast" - implementation details from GNU grep's author.
 * Command Grep – 25 practical examples
 * "why GNU grep is fast" - implementation details from GNU grep's author.
 * Command Grep – 25 practical examples