ग्रेप (grep): Difference between revisions

From Vigyanwiki
(.)
No edit summary
Line 22: Line 22:




<code>grep</code>एक नियमित अभिव्यक्ति से मेल खाने वाली लाइनों के लिए सादा-टेक्स्ट डेटा सेट खोजने के लिए एक कमांड-लाइन उपयोगिता है। इसका नाम एड कमांड<code>g/re/p</code> (ग्लोबल / रेगुलर एक्सप्रेशन सर्च / और प्रिंट) से आया है, जिसका प्रभाव समान है। <ref>Hauben et al. 1997, Ch. 9</ref><ref name="etymology">{{Cite web |url=http://www.catb.org/~esr/jargon/html/G/grep.html |title=पकड़|access-date=2006-06-29 |last=Raymond |first=Eric |author-link=Eric S. Raymond |work=Jargon File |url-status=dead |archive-url=https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html |archive-date=2006-06-17 }}</ref> <code>grep</code> मूल रूप से यूनिक्स ऑपरेटिंग सिस्टम के लिए विकसित किया गया था, किंतु बाद में सभी यूनिक्स जैसी प्रणालियों और कुछ अन्य जैसे ओएस-9 के लिए उपलब्ध हो गया।<ref>{{cite book|author=Paul S. Dayan|year=1992|title=The OS-9 Guru - 1 : The Facts|publisher=Galactic Industrial Limited|isbn=0-9519228-0-7}}</ref>
<code>grep</code>एक नियमित अभिव्यक्ति से मेल खाने वाली लाइनों के लिए सादा-टेक्स्ट डेटा सेट खोजने के लिए एक कमांड-लाइन उपयोगिता है। इसका नाम एड कमांड<code>g/re/p</code> (ग्लोबल / रेगुलर एक्सप्रेशन सर्च / और प्रिंट) से आया है, जिसका प्रभाव समान है। <ref>Hauben et al. 1997, Ch. 9</ref><ref name="etymology">{{Cite web |url=http://www.catb.org/~esr/jargon/html/G/grep.html |title=पकड़|access-date=2006-06-29 |last=Raymond |first=Eric |author-link=Eric S. Raymond |work=Jargon File |url-status=dead |archive-url=https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html |archive-date=2006-06-17 }}</ref> <code>grep</code> मूल रूप से यूनिक्स ऑपरेटिंग सिस्टम के लिए विकसित किया गया था, किंतु बाद में सभी यूनिक्स जैसी प्रणालियों और कुछ अन्य जैसे ओएस-9 के लिए उपलब्ध हो गया।<ref>{{cite book|author=Paul S. Dayan|year=1992|title=The OS-9 Guru - 1 : The Facts|publisher=Galactic Industrial Limited|isbn=0-9519228-0-7}}</ref>




Line 30: Line 30:
थॉम्पसन ने ली ई. मैकमोहन की सहायता करने के लिए [[पीडीपी-11]] असेम्बली भाषा में पहला संस्करण लिखा, जो अलग-अलग पेपरों के लेखकत्व का निर्धारण करने के लिए [[द फेडरलिस्ट पेपर्स]] के टेक्स्ट का विश्लेषण करता है।<ref>Computerphile, ''[https://www.youtube.com/watch?v=NTfOnGZUZDk Where GREP Came From]'', interview with [[Brian Kernighan]]</ref> एड (टेक्स्ट एडिटर) (थॉम्पसन द्वारा लिखित) में नियमित अभिव्यक्ति का समर्थन था किंतु इतनी बड़ी मात्रा में टेक्स्ट पर उपयोग नहीं किया जा सकता था, इसलिए थॉम्पसन ने उस कोड को एक स्टैंडअलोन उपकरण में उद्धृत किया गया।<ref name="history102" /> उन्होंने नाम इसलिए चुना क्योंकि एड में, कमांड g/re/p एक निर्दिष्ट पैटर्न से मेल खाने वाली सभी पंक्तियों को प्रिंट करेगा।<ref>{{cite web|url=http://perl.plover.com/classes/HoldSpace/samples/slide012.html|title=एड रेगेक्स|website=perl.plover.com|access-date=24 April 2018|url-status=dead|archive-url=https://web.archive.org/web/20171020031534/https://perl.plover.com/classes/HoldSpace/samples/slide012.html|archive-date=20 October 2017}}</ref><ref>{{cite web|url=http://robots.thoughtbot.com/how-grep-got-its-name|title=ग्रेप को इसका नाम कैसे मिला|website=robots.thoughtbot.com|access-date=24 April 2018|url-status=dead|archive-url=https://web.archive.org/web/20170809155158/https://robots.thoughtbot.com/how-grep-got-its-name|archive-date=9 August 2017}}</ref> <code>grep</code> पहले [[संस्करण 4 यूनिक्स]] में सम्मिलित किया गया था। यह कहते हुए कि इसे "सामान्यतः प्रोटोटाइपिकल सॉफ़्टवेयर उपकरण के रूप में उद्धृत किया जाता है", मैक्लेरॉय ने <code>grep</code> को यूनिक्स में थॉम्पसन के उपकरण दर्शन को "अपरिवर्तनीय रूप से समाहित करने" का श्रेय दिया।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs |url-status=live |archive-url=https://web.archive.org/web/20171111151817/http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-date=2017-11-11 }}</ref>
थॉम्पसन ने ली ई. मैकमोहन की सहायता करने के लिए [[पीडीपी-11]] असेम्बली भाषा में पहला संस्करण लिखा, जो अलग-अलग पेपरों के लेखकत्व का निर्धारण करने के लिए [[द फेडरलिस्ट पेपर्स]] के टेक्स्ट का विश्लेषण करता है।<ref>Computerphile, ''[https://www.youtube.com/watch?v=NTfOnGZUZDk Where GREP Came From]'', interview with [[Brian Kernighan]]</ref> एड (टेक्स्ट एडिटर) (थॉम्पसन द्वारा लिखित) में नियमित अभिव्यक्ति का समर्थन था किंतु इतनी बड़ी मात्रा में टेक्स्ट पर उपयोग नहीं किया जा सकता था, इसलिए थॉम्पसन ने उस कोड को एक स्टैंडअलोन उपकरण में उद्धृत किया गया।<ref name="history102" /> उन्होंने नाम इसलिए चुना क्योंकि एड में, कमांड g/re/p एक निर्दिष्ट पैटर्न से मेल खाने वाली सभी पंक्तियों को प्रिंट करेगा।<ref>{{cite web|url=http://perl.plover.com/classes/HoldSpace/samples/slide012.html|title=एड रेगेक्स|website=perl.plover.com|access-date=24 April 2018|url-status=dead|archive-url=https://web.archive.org/web/20171020031534/https://perl.plover.com/classes/HoldSpace/samples/slide012.html|archive-date=20 October 2017}}</ref><ref>{{cite web|url=http://robots.thoughtbot.com/how-grep-got-its-name|title=ग्रेप को इसका नाम कैसे मिला|website=robots.thoughtbot.com|access-date=24 April 2018|url-status=dead|archive-url=https://web.archive.org/web/20170809155158/https://robots.thoughtbot.com/how-grep-got-its-name|archive-date=9 August 2017}}</ref> <code>grep</code> पहले [[संस्करण 4 यूनिक्स]] में सम्मिलित किया गया था। यह कहते हुए कि इसे "सामान्यतः प्रोटोटाइपिकल सॉफ़्टवेयर उपकरण के रूप में उद्धृत किया जाता है", मैक्लेरॉय ने <code>grep</code> को यूनिक्स में थॉम्पसन के उपकरण दर्शन को "अपरिवर्तनीय रूप से समाहित करने" का श्रेय दिया।<ref name="reader">{{cite techreport |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs |url-status=live |archive-url=https://web.archive.org/web/20171111151817/http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-date=2017-11-11 }}</ref>
== कार्यान्वयन ==
== कार्यान्वयन ==
कई ऑपरेटिंग सिस्टम और सॉफ्टवेयर विकास परिवेशों में विभिन्न प्रकार के <code>grep</code> कार्यान्वयन उपलब्ध हैं।<ref>{{cite techreport |first=Tony |last=Abou-Assaleh |author2=Wei Ai|title=ग्लोबल रेगुलर एक्सप्रेशन प्रिंट (जीआरईपी) टूल्स का सर्वेक्षण|institution=Dalhousie University|date=March 2004}}</ref> {{r|reader}} प्रारंभिक वेरिएंट में <code>egrep</code> और <code>fgrep</code>सम्मिलित थे, जिन्हें संस्करण 7 यूनिक्स में प्रस्तुत किया गया था।<ref name="Huma1988">{{cite journal|last1=Hume|first1=Andrew|title=ए टेल ऑफ़ टू ग्रीप्स|journal=Software: Practice and Experience|date=1988|volume=18|issue=11|page=1063|doi=10.1002/spe.4380181105|s2cid=6395770}}</ref> <code>egrep</code>" संस्करण केन थॉम्पसन के मूल नियमित अभिव्यक्ति कार्यान्वयन के बाद अल्फ्रेड अहो द्वारा जोड़े गए विस्तारित नियमित अभिव्यक्ति वाक्यविन्यास का समर्थन करता है। "<code>fgrep</code>" संस्करण अहो-कोरासिक स्ट्रिंग मिलान एल्गोरिदम का उपयोग करके निश्चित स्ट्रिंग्स की किसी भी सूची की खोज करता है।<ref name="Meurant1990">{{cite book|last1=Meurant|first1=Gerard|title=एल्गोरिदम और जटिलता|date=12 Sep 1990|publisher=Elsevier Science|page=278|isbn=9780080933917|url=https://books.google.com/books?id=6WriBQAAQBAJ|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20160304084311/https://books.google.com/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0|archive-date=4 March 2016}}</ref> इन वेरिएंट के बायनेरिज़ आधुनिक सिस्टम में उपस्थित हैं, सामान्यतः <code>grep</code> से लिंक होते हैं या उपयुक्त ध्वज के साथ ग्रेप को शेल स्क्रिप्ट के रूप में कहते हैं, उदाहरण के लिए <code>exec grep -E "$@"</code>.<code>egrep</code> और <code>fgrep</code>, जबकि सामान्यतः पॉज़िक्स सिस्टम पर तैनात किए जाते हैं, पॉज़िक्स विनिर्देश उनके व्यापक अस्तित्व का उल्लेख करता है, वास्तव में पॉज़िक्स का भाग नहीं हैं।<ref>{{cite web|title=पकड़|url=http://pubs.opengroup.org/onlinepubs/009695399/utilities/पकड़.html|website=www.pubs.opengroup.org|publisher=The Open Group|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151128184349/http://pubs.opengroup.org/onlinepubs/009695399/utilities/पकड़.html|archive-date=28 November 2015}}</ref>
कई ऑपरेटिंग सिस्टम और सॉफ्टवेयर विकास परिवेशों में विभिन्न प्रकार के <code>grep</code> कार्यान्वयन उपलब्ध हैं।<ref>{{cite techreport |first=Tony |last=Abou-Assaleh |author2=Wei Ai|title=ग्लोबल रेगुलर एक्सप्रेशन प्रिंट (जीआरईपी) टूल्स का सर्वेक्षण|institution=Dalhousie University|date=March 2004}}</ref> {{r|reader}} प्रारंभिक वेरिएंट में <code>egrep</code> और <code>fgrep</code>सम्मिलित थे, जिन्हें संस्करण 7 यूनिक्स में प्रस्तुत किया गया था।<ref name="Huma1988">{{cite journal|last1=Hume|first1=Andrew|title=ए टेल ऑफ़ टू ग्रीप्स|journal=Software: Practice and Experience|date=1988|volume=18|issue=11|page=1063|doi=10.1002/spe.4380181105|s2cid=6395770}}</ref> <code>egrep</code>" संस्करण केन थॉम्पसन के मूल नियमित अभिव्यक्ति कार्यान्वयन के बाद अल्फ्रेड अहो द्वारा जोड़े गए विस्तारित नियमित अभिव्यक्ति वाक्यविन्यास का समर्थन करता है। "<code>fgrep</code>" संस्करण अहो-कोरासिक स्ट्रिंग मिलान एल्गोरिदम का उपयोग करके निश्चित स्ट्रिंग्स की किसी भी सूची की खोज करता है।<ref name="Meurant1990">{{cite book|last1=Meurant|first1=Gerard|title=एल्गोरिदम और जटिलता|date=12 Sep 1990|publisher=Elsevier Science|page=278|isbn=9780080933917|url=https://books.google.com/books?id=6WriBQAAQBAJ|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20160304084311/https://books.google.com/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0|archive-date=4 March 2016}}</ref> इन वेरिएंट के बायनेरिज़ आधुनिक सिस्टम में उपस्थित हैं, सामान्यतः <code>grep</code> से लिंक होते हैं या उपयुक्त ध्वज के साथ ग्रेप को शेल स्क्रिप्ट के रूप में कहते हैं, उदाहरण के लिए <code>exec grep -E "$@"</code>.<code>egrep</code> और <code>fgrep</code>, जबकि सामान्यतः पॉज़िक्स सिस्टम पर तैनात किए जाते हैं, पॉज़िक्स विनिर्देश उनके व्यापक अस्तित्व का उल्लेख करता है, वास्तव में पॉज़िक्स का भाग नहीं हैं।<ref>{{cite web|title=पकड़|url=http://pubs.opengroup.org/onlinepubs/009695399/utilities/पकड़.html|website=www.pubs.opengroup.org|publisher=The Open Group|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151128184349/http://pubs.opengroup.org/onlinepubs/009695399/utilities/पकड़.html|archive-date=28 November 2015}}</ref>


अन्य आदेशों में यह इंगित करने के लिए शब्द grep होता है कि वे खोज उपकरण हैं, सामान्यतः वे जो नियमित अभिव्यक्ति मिलानों पर निर्भर करते हैं। पीजीआरपी <code>pgrep</code>उपयोगिता, उदाहरण के लिए, उन प्रक्रियाओं को प्रदर्शित करती है जिनके नाम किसी दिए गए रेगुलर एक्सप्रेशन से मेल खाते हैं।<ref>{{cite web|title=पीजीआरपी(1)|url=http://linux.die.net/man/1/pgrep|website=www.linux.die.net|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151222084135/http://linux.die.net/man/1/pgrep|archive-date=22 December 2015}}</ref>
अन्य आदेशों में यह इंगित करने के लिए शब्द grep होता है कि वे खोज उपकरण हैं, सामान्यतः वे जो नियमित अभिव्यक्ति मिलानों पर निर्भर करते हैं। पीजीआरपी <code>pgrep</code>उपयोगिता, उदाहरण के लिए, उन प्रक्रियाओं को प्रदर्शित करती है जिनके नाम किसी दिए गए रेगुलर एक्सप्रेशन से मेल खाते हैं।<ref>{{cite web|title=पीजीआरपी(1)|url=http://linux.die.net/man/1/pgrep|website=www.linux.die.net|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151222084135/http://linux.die.net/man/1/pgrep|archive-date=22 December 2015}}</ref>
Line 36: Line 36:
[[पर्ल]] प्रोग्रामिंग भाषा में, grep बिल्ट-इन कार्य का नाम है जो एक सूची में ऐसे तत्वों को ढूंढता है जो एक निश्चित संपत्ति को संतुष्ट करते हैं।<ref>{{cite web|title=पकड़|url=http://perldoc.perl.org/functions/पकड़.html|website=www.perldoc.perl.org|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151207062445/http://perldoc.perl.org/functions/पकड़.html|archive-date=7 December 2015}}</ref> यह उच्च-क्रम कार्य सामान्यतः अन्य भाषाओं में<code>[[filter (higher-order function)|filter]]</code> या <code>where</code> नाम दिया जाता है।
[[पर्ल]] प्रोग्रामिंग भाषा में, grep बिल्ट-इन कार्य का नाम है जो एक सूची में ऐसे तत्वों को ढूंढता है जो एक निश्चित संपत्ति को संतुष्ट करते हैं।<ref>{{cite web|title=पकड़|url=http://perldoc.perl.org/functions/पकड़.html|website=www.perldoc.perl.org|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151207062445/http://perldoc.perl.org/functions/पकड़.html|archive-date=7 December 2015}}</ref> यह उच्च-क्रम कार्य सामान्यतः अन्य भाषाओं में<code>[[filter (higher-order function)|filter]]</code> या <code>where</code> नाम दिया जाता है।


{{anchor|pcregrep}} <code>pcregrep</code> e>कमांड का कार्यान्वयन है <code>grep</code> जो नियमित अभिव्यक्ति # पर्ल और पीसीआरई सिंटैक्स का उपयोग करता है।<ref>{{cite web|title=pcregrep मैन पेज|url=http://www.pcre.org/original/doc/html/pcregrep.html|website=www.pcre.org|publisher=University of Cambridge|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151223035259/http://www.pcre.org/original/doc/html/pcregrep.html|archive-date=23 December 2015}}</ref> के जीएनयू संस्करण में समान कार्यक्षमता लागू की जा सकती है <code>grep</code> साथ <code>-P</code> झंडा।<ref>{{cite web|title=पकड़ (1)|url=http://linux.die.net/man/1/grep|website=www.linux.die.net|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151210004321/http://linux.die.net/man/1/grep|archive-date=10 December 2015}}</ref>
<code>pcregrep</code> e>कमांड का कार्यान्वयन है <code>grep</code> जो नियमित अभिव्यक्ति # पर्ल और पीसीआरई सिंटैक्स का उपयोग करता है।<ref>{{cite web|title=pcregrep मैन पेज|url=http://www.pcre.org/original/doc/html/pcregrep.html|website=www.pcre.org|publisher=University of Cambridge|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151223035259/http://www.pcre.org/original/doc/html/pcregrep.html|archive-date=23 December 2015}}</ref> के जीएनयू संस्करण में समान कार्यक्षमता लागू की जा सकती है <code>grep</code> साथ <code>-P</code> झंडा।<ref>{{cite web|title=पकड़ (1)|url=http://linux.die.net/man/1/grep|website=www.linux.die.net|access-date=12 December 2015|url-status=live|archive-url=https://web.archive.org/web/20151210004321/http://linux.die.net/man/1/grep|archive-date=10 December 2015}}</ref>
की [[ में porting | में porting]] <code>grep</code> ([[Cygwin]] और [[GnuWin32]] के भीतर, उदाहरण के लिए) [[Microsoft Windows|Micrओएसoft Windows]] के अंतर्गत भी चलते हैं। विंडोज के कुछ संस्करण समान सुविधा देते हैं <code>qgrep</code> या <code>[[findstr]]</code> आज्ञा।<ref>{{cite book
की [[ में porting |में porting]] <code>grep</code> ([[Cygwin]] और [[GnuWin32]] के भीतर, उदाहरण के लिए) [[Microsoft Windows|Micrओएसoft Windows]] के अंतर्गत भी चलते हैं। विंडोज के कुछ संस्करण समान सुविधा देते हैं <code>qgrep</code> या <code>[[findstr]]</code> आज्ञा।<ref>{{cite book
| last      = Spalding
| last      = Spalding
| first      = George
| first      = George
Line 64: Line 64:
  agrep -B नेटमास्क myfile
  agrep -B नेटमास्क myfile


== क्रिया के रूप में प्रयोग<!-- "Google_(verb)" links here -->==
== क्रिया के रूप में प्रयोग==
दिसंबर 2003 में, [[ऑक्सफोर्ड इंग्लिश डिक्शनरी]] ऑनलाइन ने grep को संज्ञा और क्रिया दोनों के रूप में जोड़ा।<ref>{{Cite web|url=https://public.oed.com/updates/new-words-list-december-2003/|title=New words list December 2003|access-date=2021-12-06|website=Oxford English Dictionary}}</ref>
दिसंबर 2003 में, [[ऑक्सफोर्ड इंग्लिश डिक्शनरी]] ऑनलाइन ने grep को संज्ञा और क्रिया दोनों के रूप में जोड़ा।<ref>{{Cite web|url=https://public.oed.com/updates/new-words-list-december-2003/|title=New words list December 2003|access-date=2021-12-06|website=Oxford English Dictionary}}</ref>
एक सामान्य क्रिया का उपयोग वाक्यांश है आप मृत पेड़ों को पकड़ नहीं सकते हैं - जिसका अर्थ है कि डिजिटल मीडिया के माध्यम से अधिक आसानी से खोजा जा सकता है, जैसे उपकरण का उपयोग करना <code>grep</code>, एक हार्ड कॉपी के साथ कोई नहीं कर सकता (यानी मृत पेड़ों से बना एक, जो इस संदर्भ में कागज के लिए एक [[अपच]] है)।<ref>''[[Jargon File]]'', article "Documentation"</ref>
एक सामान्य क्रिया का उपयोग वाक्यांश है आप मृत पेड़ों को पकड़ नहीं सकते हैं - जिसका अर्थ है कि डिजिटल मीडिया के माध्यम से अधिक आसानी से खोजा जा सकता है, जैसे उपकरण का उपयोग करना <code>grep</code>, एक हार्ड कॉपी के साथ कोई नहीं कर सकता (यानी मृत पेड़ों से बना एक, जो इस संदर्भ में कागज के लिए एक [[अपच]] है)।<ref>''[[Jargon File]]'', article "Documentation"</ref>
Line 73: Line 73:
* बॉयर-मूर स्ट्रिंग-सर्च एल्गोरिथम
* बॉयर-मूर स्ट्रिंग-सर्च एल्गोरिथम
* [[agrep]], एक अनुमानित स्ट्रिंग-मैचिंग कमांड
* [[agrep]], एक अनुमानित स्ट्रिंग-मैचिंग कमांड
* फाइंड (विंडोज़) या [[ खोजक ]], एक डॉस और विंडोज कमांड जो टेक्स्ट सर्च करता है, एक साधारण के समान <code>grep</code>
* फाइंड (विंडोज़) या [[ खोजक |खोजक]] , एक डॉस और विंडोज कमांड जो टेक्स्ट सर्च करता है, एक साधारण के समान <code>grep</code>
* ढूँढें (यूनिक्स), एक यूनिक्स कमांड जो विशेषता द्वारा फाइलों को ढूंढता है, से बहुत अलग है <code>grep</code>
* ढूँढें (यूनिक्स), एक यूनिक्स कमांड जो विशेषता द्वारा फाइलों को ढूंढता है, से बहुत अलग है <code>grep</code>
* [[यूनिक्स कमांड की सूची]]
* [[यूनिक्स कमांड की सूची]]
Line 97: Line 97:
* [https://www.linuxteacher.com/grep-command-in-unix-linux-with-examples/ Command Grep – 25 practical examples]
* [https://www.linuxteacher.com/grep-command-in-unix-linux-with-examples/ Command Grep – 25 practical examples]


{{Unix commands}}
{{Plan 9 commands}}
{{Authority control}}
[[Category: यूनिक्स टेक्स्ट प्रोसेसिंग यूटिलिटीज]] [[Category: यूनिक्स SUS2008 उपयोगिताओं]] [[Category: मानक यूनिक्स कार्यक्रम]] [[Category: योजना 9 कमांड]] [[Category: इन्फर्नो (ऑपरेटिंग सिस्टम) कमांड]] [[Category: IBM i Qshell कमांड]]  
[[Category: यूनिक्स टेक्स्ट प्रोसेसिंग यूटिलिटीज]] [[Category: यूनिक्स SUS2008 उपयोगिताओं]] [[Category: मानक यूनिक्स कार्यक्रम]] [[Category: योजना 9 कमांड]] [[Category: इन्फर्नो (ऑपरेटिंग सिस्टम) कमांड]] [[Category: IBM i Qshell कमांड]]  



Revision as of 12:51, 5 July 2023

grep
Original author(s)Ken Thompson[1][2]
Developer(s)AT&T Bell Laboratories
Initial releaseNovember 1973; 51 years ago (1973-11)[1]
Written inC
Operating systemUnix, Unix-like, Plan 9, Inferno, OS-9, MSX-DOS, IBM i
PlatformCross-platform
TypeCommand


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


इतिहास

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

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

कार्यान्वयन

कई ऑपरेटिंग सिस्टम और सॉफ्टवेयर विकास परिवेशों में विभिन्न प्रकार के grep कार्यान्वयन उपलब्ध हैं।[10] [9] प्रारंभिक वेरिएंट में egrep और fgrepसम्मिलित थे, जिन्हें संस्करण 7 यूनिक्स में प्रस्तुत किया गया था।[11] egrep" संस्करण केन थॉम्पसन के मूल नियमित अभिव्यक्ति कार्यान्वयन के बाद अल्फ्रेड अहो द्वारा जोड़े गए विस्तारित नियमित अभिव्यक्ति वाक्यविन्यास का समर्थन करता है। "fgrep" संस्करण अहो-कोरासिक स्ट्रिंग मिलान एल्गोरिदम का उपयोग करके निश्चित स्ट्रिंग्स की किसी भी सूची की खोज करता है।[12] इन वेरिएंट के बायनेरिज़ आधुनिक सिस्टम में उपस्थित हैं, सामान्यतः grep से लिंक होते हैं या उपयुक्त ध्वज के साथ ग्रेप को शेल स्क्रिप्ट के रूप में कहते हैं, उदाहरण के लिए exec grep -E "$@".egrep और fgrep, जबकि सामान्यतः पॉज़िक्स सिस्टम पर तैनात किए जाते हैं, पॉज़िक्स विनिर्देश उनके व्यापक अस्तित्व का उल्लेख करता है, वास्तव में पॉज़िक्स का भाग नहीं हैं।[13]

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

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

pcregrep e>कमांड का कार्यान्वयन है grep जो नियमित अभिव्यक्ति # पर्ल और पीसीआरई सिंटैक्स का उपयोग करता है।[16] के जीएनयू संस्करण में समान कार्यक्षमता लागू की जा सकती है grep साथ -P झंडा।[17] की में porting grep (Cygwin और GnuWin32 के भीतर, उदाहरण के लिए) Micrओएसoft Windows के अंतर्गत भी चलते हैं। विंडोज के कुछ संस्करण समान सुविधा देते हैं qgrep या findstr आज्ञा।[18]grep कमांड MSX-Dओएस संस्करण 2 के लिए ASCII Corporation के MSX-Dओएस2 टूल्स का भी भाग है।[19]

grep}ईपी, egrep, और fgrep कमांड्स को IBM i ऑपरेटिंग सिस्टम में पोर्ट किया गया है।[20]

सॉफ्टवेयर Adobe InDesign में GREP कार्य करता है (CS3 संस्करण (2007 के बाद से)[21]), ढूंढें/बदलें संवाद बॉक्स में[22] GREP टैब, और InDesign CS4 के साथ प्रस्तुत किया गया[23] पैराग्राफ शैलियों में[24] जीआरईपी शैलियों।

अग्रेप

agrep (अनुमानित grep) तब भी मेल खाता है जब टेक्स्ट केवल लगभग खोज पैटर्न में फिट बैठता है।[25] यह निम्नलिखित मंगलाचरण फ़ाइल myfile में नेटमास्क पाता है, किंतु कोई भी अन्य शब्द जो इससे प्राप्त किया जा सकता है, दो से अधिक प्रतिस्थापन नहीं दिए गए हैं।

agrep -2 नेटमास्क myfile

यह उदाहरण निकटतम के साथ मिलानों की एक सूची तैयार करता है, जो कि सबसे कम प्रतिस्थापन वाले पहले सूचीबद्ध हैं। आदेश ध्वज B का अर्थ सर्वोत्तम है:

agrep -B नेटमास्क myfile

क्रिया के रूप में प्रयोग

दिसंबर 2003 में, ऑक्सफोर्ड इंग्लिश डिक्शनरी ऑनलाइन ने grep को संज्ञा और क्रिया दोनों के रूप में जोड़ा।[26] एक सामान्य क्रिया का उपयोग वाक्यांश है आप मृत पेड़ों को पकड़ नहीं सकते हैं - जिसका अर्थ है कि डिजिटल मीडिया के माध्यम से अधिक आसानी से खोजा जा सकता है, जैसे उपकरण का उपयोग करना grep, एक हार्ड कॉपी के साथ कोई नहीं कर सकता (यानी मृत पेड़ों से बना एक, जो इस संदर्भ में कागज के लिए एक अपच है)।[27]


यह भी देखें

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

संदर्भ

  1. 1.0 1.1 1.2 Kernighan, Brian (1984). The Unix Programming Environment. Prentice Hall. pp. 102. ISBN 0-13-937681-X.
  2. “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson Archived 2015-05-26 at the Wayback Machine, By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium
  3. Hauben et al. 1997, Ch. 9
  4. Raymond, Eric. "पकड़". Jargon File. Archived from the original on 2006-06-17. Retrieved 2006-06-29.
  5. Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  6. Computerphile, Where GREP Came From, interview with Brian Kernighan
  7. "एड रेगेक्स". perl.plover.com. Archived from the original on 20 October 2017. Retrieved 24 April 2018.
  8. "ग्रेप को इसका नाम कैसे मिला". robots.thoughtbot.com. Archived from the original on 9 August 2017. Retrieved 24 April 2018.
  9. 9.0 9.1 McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2017-11-11.
  10. Abou-Assaleh, Tony; Wei Ai (March 2004). ग्लोबल रेगुलर एक्सप्रेशन प्रिंट (जीआरईपी) टूल्स का सर्वेक्षण (Technical report). Dalhousie University.
  11. Hume, Andrew (1988). "ए टेल ऑफ़ टू ग्रीप्स". Software: Practice and Experience. 18 (11): 1063. doi:10.1002/spe.4380181105. S2CID 6395770.
  12. Meurant, Gerard (12 Sep 1990). एल्गोरिदम और जटिलता. Elsevier Science. p. 278. ISBN 9780080933917. Archived from the original on 4 March 2016. Retrieved 12 December 2015.
  13. "पकड़". www.pubs.opengroup.org. The Open Group. Archived from the original on 28 November 2015. Retrieved 12 December 2015.
  14. "पीजीआरपी(1)". www.linux.die.net. Archived from the original on 22 December 2015. Retrieved 12 December 2015.
  15. "पकड़". www.perldoc.perl.org. Archived from the original on 7 December 2015. Retrieved 12 December 2015.
  16. "pcregrep मैन पेज". www.pcre.org. University of Cambridge. Archived from the original on 23 December 2015. Retrieved 12 December 2015.
  17. "पकड़ (1)". www.linux.die.net. Archived from the original on 10 December 2015. Retrieved 12 December 2015.
  18. Spalding, George (2000). Windows 2000 administration. Network professional's library. Osborne/McGraw-Hill. pp. 634. ISBN 978-0-07-882582-8. Retrieved 2010-12-10. QGREP.EXE[:] A similar tool to grep in UNIX, this tool can be used to search for a text string
  19. "MSX-DOS2 Tools User's Manual by ASCII Corporation". April 1993.
  20. IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM (in English). Retrieved 2020-09-05.
  21. "Review: Adobe InDesign CS3 - CreativePro.com". creativepro.com. 20 April 2007. Archived from the original on 5 January 2018. Retrieved 24 April 2018.
  22. "InDesign Help: find/change". Archived from the original on 2016-08-28. Retrieved 2016-08-12.
  23. "InDesign: GREP Styles (1) Setting text between parentheses in Italic". Archived from the original on 2017-09-24. Retrieved 2018-01-05.
  24. "InDesign Help: GREP styles". Archived from the original on 2016-08-28. Retrieved 2016-08-12.
  25. S. Lee Henry (June 1998). "Proper Searching". Sun Expert. pp. 35–26.
  26. "New words list December 2003". Oxford English Dictionary. Retrieved 2021-12-06.
  27. Jargon File, article "Documentation"
Notes
  • Alain Magloire (August 2000). Grep: Searching for a Pattern. Iuniverse Inc. ISBN 0-595-10039-2.
  • 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.
  • Michael Hauben; et al. (April 1997). Netizens: On the History and Impact of Usenet and the Internet (Perspectives). Wiley-IEEE Computer Society Press. ISBN 978-0-8186-7706-9.


बाहरी संबंध