ग्रेप (grep)

From Vigyanwiki
Revision as of 16:39, 14 July 2023 by alpha>Neeraja (added Category:Vigyan Ready using HotCat)
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 कमांड grep का कार्यान्वयन है जो पर्ल रेगुलर एक्सप्रेशन सिंटैक्स का उपयोग करता है।[16] इसी तरह की कार्यक्षमता को -P ध्वज के साथ grep के जीएनयू संस्करण में प्रयुक्त किया जा सकता है।[17]

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

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

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

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

अग्रेप

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

यह निम्नलिखित मंगलाचरण फ़ाइल मायफ़ाइल में नेटमास्क पाता है, किंतु कोई भी अन्य शब्द जो इससे प्राप्त किया जा सकता है, दो से अधिक प्रतिस्थापन नहीं दिए गए हैं।

agrep -2 netmasks myfile

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

agrep -B netmasks 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.


बाहरी संबंध