grep

grep هي أداة سطر أوامر للبحث في النصوص عن أسطر تطابق تعبيرًا نمطيًا . اسمها مشتق من الأمر ed ( global , regular expression , print )، الذي يؤدي نفس الوظيفة. [ 3 ] [ 4 ] طُوِّرت grep في الأصل لنظام التشغيل يونكس ، وهي متوفرة بشكل شائع على أنظمة شبيهة بيونكس وبعض الأنظمة الأخرى مثل OS-9 . [ 5 ] يُطلق على أمر shell الذي يُشغِّل الأداة نفس الاسم .g/re/pgrep

تاريخ

قبل تسميته، كان grep أداةً خاصة كتبها كين تومسون للبحث في الملفات عن أنماط معينة. طلب ​​دوغ ماكلروي ، الذي لم يكن على علم بوجودها، من تومسون كتابة برنامج مماثل. ردّ تومسون بأنه سيفكر في الأمر طوال الليل، لكنه في الواقع قام بتصحيح الأخطاء وإجراء تحسينات لمدة ساعة تقريبًا على برنامجه الخاص المسمى s(اختصارًا لكلمة "بحث"). في اليوم التالي، عرض البرنامج على ماكلروي، الذي قال إنه بالضبط ما كان يريده. قد تفسر رواية تومسون الاعتقاد السائد بأن grep كُتب في ليلة واحدة. [ 6 ]

كتب تومسون النسخة الأولى بلغة التجميع PDP-11 لمساعدة لي إي. ماكماهون في تحليل نص أوراق الفيدراليست لتحديد مؤلفي كل ورقة على حدة. [ 7 ] كان محرر النصوص ed (الذي ألفه تومسون أيضًا) يدعم التعبيرات النمطية، لكنه لم يكن يُستخدم للبحث في كميات كبيرة من النصوص، لأنه كان يُحمّل الملف بأكمله في الذاكرة لتمكين التحرير العشوائي ، لذا استخرج تومسون شيفرة التعبيرات النمطية إلى أداة مستقلة تعالج الملفات الطويلة بشكل تسلسلي دون تخزين الكثير من البيانات في الذاكرة. [ 1 ] اختار تومسون هذا الاسم لأن الأمر ed، حيث يمثل التعبير النمطي المراد مطابقته ، كان يطبع جميع الأسطر التي تحتوي على نمط مطابق محدد. [ 8 ] [ 9 ] أُدرج grep لأول مرة في الإصدار الرابع من يونكس . وذكر ماكلروي أن grep "يُشار إليه عمومًا على أنه أداة البرمجيات النموذجية"، ونسب إليه الفضل في "ترسيخ" فلسفة أدوات طومسون في نظام يونكس بشكل لا رجعة فيه. [ 10 ]g/re/pre

التطبيقات

تتوفر العديد من تطبيقات grep في أنظمة التشغيل وبيئات تطوير البرمجيات. [ 11 ] تضمنت الإصدارات المبكرة grep egrepو grep fgrep، اللذين تم تقديمهما في الإصدار 7 من يونكس . [ 10 ]egrep يدعم الإصدار grep صيغة تعبير نمطي موسعة أضافها ألفريد أهو بعد تطبيق كين تومسون الأصلي للتعبير النمطي. [ 12 ] يبحث الإصدار fgrepgrep عن أي سلسلة نصية من قائمة ثابتة باستخدام خوارزمية مطابقة السلاسل النصية أهو-كوراسيك . [ 13 ] توجد ملفات تنفيذية لهذه الإصدارات في الأنظمة الحديثة، وعادةً ما ترتبط بـ grep أو تستدعي grep كبرنامج نصي shell مع إضافة العلامة المناسبة، على سبيل المثال . على الرغم من شيوع استخدام الأمرَين grep و grep في أنظمة POSIX ، لدرجة أن مواصفات POSIX تشير إلى انتشارهما الواسع، إلا أنهما ليسا جزءًا من POSIX. [ 14 ]execgrep-E"$@"egrepfgrep

تحتوي بعض الأوامر الأخرى على كلمة "grep" للدلالة على أنها أدوات بحث، وعادةً ما تعتمد على مطابقة التعبيرات النمطية. pgrepعلى سبيل المثال، تعرض الأداة العمليات التي تتطابق أسماؤها مع تعبير نمطي معين. [ 15 ]

في لغة برمجة بيرلgrep ، تُعدّ دالة مُدمجة تُستخدم للعثور على عناصر في قائمة تُحقق خاصية مُعينة. [ 16 ] تُسمى هذه الدالة من الرتبة العلياfilter عادةً باسم أو whereفي لغات أخرى.

هذا pcregrepالأمر هو تطبيق لأمر grep يستخدم صيغة التعبيرات النمطية في لغة بيرل . [ 17 ] ويمكن استدعاء وظائف مماثلة في نسخة جنو من grep باستخدام -Pالعلامة. [ 18 ]

تعمل نسخ grep (ضمن Cygwin و GnuWin32 ، على سبيل المثال) أيضًا تحت نظام التشغيل Microsoft Windows . تتضمن بعض إصدارات Windows الأمر المشابه qgrepأو findstrالأمر. [ 19 ]

يُعد أمر grep أيضًا جزءًا من أدوات MSX-DOS2 الخاصة بـ ASCII لنظام MSX-DOS الإصدار 2. [ 20 ]

تم أيضًا نقل الأوامر ، و إلى نظام grepالتشغيل egrepIBM i . [ 21 ]fgrep

يحتوي برنامج Adobe InDesign على وظائف GREP (منذ إصدار CS3 (2007) [ 22 ] )، في مربع حوار البحث/التغيير [ 23 ] علامة التبويب "GREP"، وتم تقديمها مع InDesign CS4 [ 24 ] في أنماط الفقرات [ 25 ] "أنماط GREP".

agrep

agrep(البحث التقريبي grep) هو برنامج مفتوح المصدر لمطابقة السلاسل النصية التقريبية ، تم تطويره بواسطة أودي مانبر وسون وو بين عامي 1988 و1991، [ 26 ] للاستخدام مع نظام يونكس . تم نقله إلى أنظمة التشغيل OS/2 و MS- DOS وويندوز .

يُجري الأمر grep عملية مطابقة حتى عندما يتطابق النص تقريبًا مع نمط البحث. [ 27 ]

يجد هذا الاستدعاء التالي netmasksفي الملف myfile، ولكن أيضًا أي كلمة أخرى يمكن اشتقاقها منه، مع إعطاء ما لا يزيد عن استبدالين.

agrep -2 netmasks myfile

يُنشئ هذا المثال قائمةً بالمطابقات، حيث تُدرج أقرب المطابقات، أي تلك التي تحتوي على أقل عدد من الاستبدالات، أولاً. -Bويعني خيار الأمر "الأفضل".

agrep -B netmasks myfile

الاستخدام كفعل

في ديسمبر 2003، أضاف قاموس أكسفورد الإنجليزي على الإنترنت كلمة "grep" كاسم وفعل. [ 28 ]

من الاستخدامات الشائعة للفعل عبارة "لا يمكنك البحث في الأشجار الميتة باستخدام grep" - بمعنى أنه يمكن البحث بسهولة أكبر في الوسائط الرقمية، باستخدام أدوات مثل grep، مقارنةً بالبحث في نسخة ورقية (أي نسخة مصنوعة من "الأشجار الميتة"، وهو في هذا السياق تعبير ملطف للورق). [ 29 ]

انظر أيضاً

مراجع

  1. 1 2 3 كيرنيغان ، برايان (1984). بيئة برمجة يونكس . برنتيس هول. ص 102. ISBN  0-13-937681-X.
  2. «كان الأمر grep أمرًا خاصًا بي لفترة طويلة قبل أن أجعله عامًا.» - كين تومسون. مؤرشف في 26 مايو 2015 على موقع Wayback Machine ، بقلم بنجامين روالثانزاوفا، نُشر في 5 فبراير 2014، على منصة Medium.
  3. هاوبن، مايكل ؛ هاوبن، روندا (1997). "حول التاريخ المبكر لأدوات يونكس وتأثيرها في بناء أدوات الألفية الجديدة". مستخدمو الإنترنت: حول تاريخ وتأثير يوزنت والإنترنت . لوس ألاميتوس، كاليفورنيا: مطبعة جمعية مهندسي الكهرباء والإلكترونيات. ISBN 978-0-8186-7706-9ص  ١٣٦: في أحد الأيام، سألتُ كين تومسون إن كان بإمكانه استخراج مُعرِّف التعبيرات النمطية من المُحرِّر وكتابة برنامجٍ يُنفِّذ هذه المهمة في خطوةٍ واحدة. فأجاب بالإيجاب. وفي صباح اليوم التالي، وجدتُ رسالةً في بريدي تُعلن عن برنامجٍ يُدعى grep. وقد عمل البرنامج بكفاءةٍ عالية. وعندما سُئل كين عن معنى هذا الاسم الغريب، قال إنه واضح. فهو اختصارٌ لأمر المُحرِّر الذي يُحاكيه البرنامج، g/re/p (طباعة التعبيرات النمطية العامة).
  4. ريموند، إريك . "grep" . ملف المصطلحات . مؤرشف من الأصل بتاريخ 17-06-2006 . تم الاطلاع عليه بتاريخ 29-06-2006 .
  5. بول س. دايان (1992). خبير نظام التشغيل OS-9 - 1 : الحقائق . شركة جالاكتيك الصناعية المحدودة. ISBN  0-9519228-0-7.
  6. مؤتمر VCF East 2019 - مقابلة برايان كيرنيغان مع كين تومسون (فيديو). يوتيوب. 6 مايو 2019. مؤرشف من الأصل بتاريخ 11 ديسمبر 2021.(35 دقيقة)
  7. موقع Computerphile، من أين أتت GREP؟ (مؤرشف بتاريخ 11 نوفمبر 2018 على موقع Wayback Machine) ، مقابلة مع برايان كيرنيغان
  8. "ed regexes" . perl.plover.com . مؤرشف من الأصل في 20 أكتوبر 2017. تم الاطلاع عليه في 24 أبريل 2018 .
  9. "كيف حصل Grep على اسمه" . robots.thoughtbot.com . مؤرشف من الأصل في 9 أغسطس 2017. تم الاطلاع عليه في 24 أبريل 2018 .
  10. 1 2 ماكيلروي، دكتور في الطب (1987). قارئ يونكس البحثي: مقتطفات مشروحة من دليل المبرمج، 1971-1986 (ملف PDF) (تقرير فني). مختبرات بيل، قسم أبحاث الحوسبة والكيمياء. 139. مؤرشف (ملف PDF) من الأصل بتاريخ 11-11-2017.
  11. أبو عسال، توني؛ وي آي (مارس 2004). مسح لأدوات الطباعة باستخدام التعبيرات النمطية العالمية (GREP) (تقرير فني). جامعة دالهاوزي.
  12. هيوم، أندرو (1988). "قصة اثنين من غريبس". البرمجيات: الممارسة والخبرة . 18 (11): 1063. doi : 10.1002/spe.4380181105 . S2CID 6395770 . 
  13. ميوران، جيرارد (12 سبتمبر 1990). الخوارزميات والتعقيد . إلسيفير ساينس. ص 278. ISBN  9780080933917أُرشف من الأصل في 4 مارس 2016. تم الاطلاع عليه في 12 ديسمبر 2015 .
  14. "grep" . www.pubs.opengroup.org . مجموعة Open Group. مؤرشف من الأصل بتاريخ 28 نوفمبر 2015. تم الاطلاع عليه بتاريخ 12 ديسمبر 2015 .
  15. "pgrep(1)" . www.linux.die.net . مؤرشف من الأصل بتاريخ 22 ديسمبر 2015. تم الاطلاع عليه بتاريخ 12 ديسمبر 2015 .
  16. "grep" . www.perldoc.perl.org . مؤرشف من الأصل في 7 ديسمبر 2015. تم الاطلاع عليه في 12 ديسمبر 2015 .
  17. "صفحة دليل pcregrep" . www.pcre.org . جامعة كامبريدج. مؤرشفة من الأصل بتاريخ 23 ديسمبر 2015. تم الاطلاع عليها بتاريخ 12 ديسمبر 2015 .
  18. "grep(1)" . www.linux.die.net . مؤرشف من الأصل بتاريخ 10 ديسمبر 2015. تم الاطلاع عليه بتاريخ 12 ديسمبر 2015 .
  19. ↑ سبالدينغ ، جورج (2000). إدارة ويندوز 2000. مكتبة متخصصي الشبكات. أوزبورن/ماكجرو هيل. ص 634. ISBN  978-0-07-882582-8تم الاطلاع عليه بتاريخ 10 ديسمبر 2010. QGREP.EXE[:] أداة مشابهة لأداة grep في أنظمة UNIX، ويمكن استخدامها للبحث عن سلسلة نصية.
  20. "دليل مستخدم أدوات MSX-DOS2 من شركة ASCII" . أبريل 1993.
  21. آي بي إم . "برمجة Qshell لنظام IBM System i الإصدار 7.2" (ملف PDF) . آي بي إم . مؤرشف (ملف PDF) من الأصل بتاريخ 18 سبتمبر 2020. تم الاطلاع عليه بتاريخ 5 سبتمبر 2020 .
  22. "مراجعة: Adobe InDesign CS3 - CreativePro.com" . creativepro.com . 20 أبريل 2007. مؤرشف من الأصل في 5 يناير 2018. تم الاطلاع عليه في 24 أبريل 2018 .
  23. "مساعدة InDesign: البحث/التغيير" . مؤرشف من الأصل بتاريخ 28-08-2016 . تم الاطلاع عليه بتاريخ 12-08-2016 .
  24. "InDesign: أنماط GREP (1) تعيين النص بين قوسين بخط مائل" . مؤرشف من الأصل بتاريخ 24-09-2017 . تم الاطلاع عليه بتاريخ 05-01-2018 .
  25. "مساعدة InDesign: أنماط GREP" . مؤرشف من الأصل بتاريخ 28-08-2016 . تم الاطلاع عليه بتاريخ 12-08-2016 .
  26. وو، صن؛ مانبر، أودي (20-24 يناير 1992). أغريب - أداة سريعة لمطابقة الأنماط التقريبية . مؤتمر يو إس إنيكس الشتوي لعام 1992. سان فرانسيسكو، كاليفورنيا. CiteSeerX 10.1.1.89.5424 . 
  27. إس. لي هنري (يونيو 1998). "البحث الصحيح". خبير الشمس . ص 35-26 . 
  28. "قائمة الكلمات الجديدة، ديسمبر 2003" . قاموس أكسفورد الإنجليزي . مؤرشف من الأصل بتاريخ 24 يوليو 2023. تم الاطلاع عليه بتاريخ 6 ديسمبر 2021 .
  29. ملف المصطلحات ، مقالة "التوثيق"
ملحوظات
  • آلان ماغلور (أغسطس 2000). غريب: البحث عن نمط . شركة آي يونيفرس. رقم ISBN 0-595-10039-2.
  • هيوم، أندرو (1988). كولينسون، بيتر (محرر). "حروب البحث: مبادرة البحث الاستراتيجي". وقائع مؤتمر ربيع 1988 لمجموعة مستخدمي يونكس الأوروبية . بانتينغفورد، المملكة المتحدة: مجموعة مستخدمي يونكس الأوروبية: 237-245 .