ग्रेप (grep)

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

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

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

e>कमांड का कार्यान्वयन है  जो नियमित अभिव्यक्ति # पर्ल और पीसीआरई सिंटैक्स का उपयोग करता है। के जीएनयू संस्करण में समान कार्यक्षमता लागू की जा सकती है   साथ   झंडा। की में porting    (Cygwin और GnuWin32 के भीतर, उदाहरण के लिए) Microsoft Windows के अंतर्गत भी चलते हैं। विंडोज के कुछ संस्करण समान सुविधा देते हैं   या   आज्ञा। ए  कमांड MSX-DOS संस्करण 2 के लिए ASCII Corporation के MSX-DOS2 टूल्स का भी हिस्सा है।

{{Mono|grep}ईपी}}, egrep, और fgrep कमांड्स को IBM i ऑपरेटिंग सिस्टम में पोर्ट किया गया है। सॉफ्टवेयर Adobe InDesign में GREP कार्य करता है (CS3 संस्करण (2007 के बाद से) ), ढूंढें/बदलें संवाद बॉक्स में GREP टैब, और InDesign CS4 के साथ पेश किया गया पैराग्राफ शैलियों में जीआरईपी शैलियों।

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