[go: nahoru, domu]

انتقل إلى المحتوى

جريب (يونكس): الفرق بين النسختين

من ويكيبيديا، الموسوعة الحرة
[مراجعة غير مفحوصة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
لا ملخص تعديل
ط استبدال وسائط مستغى عنها في الاستشهاد
 
(30 مراجعة متوسطة بواسطة 10 مستخدمين غير معروضة)
سطر 1: سطر 1:
{{عن|3=جريب (توضيح)}}
{{معلومات برمجية
{{بطاقة برمجية
| name = grep
| name = grep
| title = grep
| العنوان = grep
| screenshot =
| screenshot =
| caption =
| caption =
| collapsible =
| collapsible =
| author = [[Ken Thompson]]<ref name=history102>{{مرجع كتاب|last=Kernighan|first=Brian|title=The Unix Programming Environment|year=1984|publisher=Prentice Hall|isbn=0-13-937681-X|pages=102}}</ref><ref>[https://medium.com/@rualthanzauva/grep-was-a-private-command-of-mine-for-quite-a-while-before-i-made-it-public-ken-thompson-a40e24a5ef48 “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson] {{webarchive|url=https://web.archive.org/web/20150526111054/https://medium.com/@rualthanzauva/grep-was-a-private-command-of-mine-for-quite-a-while-before-i-made-it-public-ken-thompson-a40e24a5ef48 |date=2015-05-26 }}, By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium</ref>
| المؤلف = [[كين تومسن]]<ref name=history102>{{استشهاد بكتاب|الأخير=Kernighan|الأول=Brian|عنوان=The Unix Programming Environment|سنة=1984|ناشر=Prentice Hall|isbn=0-13-937681-X|صفحات=[https://archive.org/details/unixprogramminge0000kern/page/102 102]|مسار=https://archive.org/details/unixprogramminge0000kern/page/102| مسار أرشيف = https://web.archive.org/web/20191215070522/https://archive.org/details/unixprogramminge0000kern/page/102 | تاريخ أرشيف = 15 ديسمبر 2019 }}</ref><ref>[https://medium.com/@rualthanzauva/grep-was-a-private-command-of-mine-for-quite-a-while-before-i-made-it-public-ken-thompson-a40e24a5ef48 “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson] {{webarchive|url=https://web.archive.org/web/20150526111054/https://medium.com/@rualthanzauva/grep-was-a-private-command-of-mine-for-quite-a-while-before-i-made-it-public-ken-thompson-a40e24a5ef48 |date=2015-05-26 }}, By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium</ref>
| المطور = [[مختبرات بل]]
| developer = [[AT&T Bell Laboratories]]
| released = {{تاريخ البدء والعمر | 1974 | 11}}
| released = {{تاريخ إطلاق وعمر|1974|11}}<ref name=history102 />
| latest release version = 3.3 <المرجع> {{cite web
| latest release version = 3.3 <ref>{{استشهاد ويب| مسار = https://lists.gnu.org/archive/html/info-gnu/2018-12/msg00011.html
  | عنوان = grep-3.3 تم إصداره [مستقر]
  | url = https://lists.gnu.org/archive/html/info-gnu/2018-12/msg00011.html
  | العنوان = grep-3.3 تم إصداره [مستقر]
  | الأول = جيم
  | الأول = جيم
  | الماضي = مايرنغ
  | الماضي = مايرنغ
  | الناشر = مؤسسة البرمجيات الحرة
  | ناشر = مؤسسة البرمجيات الحرة
  | التاريخ = 2018-12-20
  | تاريخ = 2018-12-20
  | تاريخ الوصول = 2018-12-27| مسار أرشيف = https://web.archive.org/web/20181228034916/https://lists.gnu.org/archive/html/info-gnu/2018-12/msg00011.html | تاريخ أرشيف = 28 ديسمبر 2018 }}</ref>
  | accessdate = 2018-12-27}} </ref>
| latest release date = {{تاريخ إطلاق وعمر|2018|12|20|df=yes}}
| latest release date = {{تاريخ إطلاق وعمر|2018|12|20|df=yes}}
| programming language =
| programming language =
| platform = [[Unix]] and [[Unix-like]], [[OS-9]]
| platform = [[يونكس]] و[[شبيه يونكس]]، OS-9
| genre = [[أمر (حوسبة)|أمر]]
| genre = [[أمر (حوسبة)|أمر]]
| license = [[رخصة جنو العمومية]]
| license = [[رخصة جنو العمومية]]
| website = {{مسار|https://www.gnu.org/software/grep/}}
| الموقع = {{مسار|https://www.gnu.org/software/grep/}}
| standard =
| standard =
| AsOf =
| AsOf =
}}
}}<span data-segmentid="49" class="cx-segment">'''<code>grep</code>''' هي أداة مساعدة [[واجهة سطر الأوامر|لسطر]] الأوامر للبحث عن مجموعات بيانات النص العادي للخطوط التي تتطابق مع '''[[تعبير نمطي|التعابير النمطية]]''' {{إنج|Regular expression}}.</span> <span data-segmentid="52" class="cx-segment">يأتي اسمه من الأمر [[إد (محرر نصوص)|ed]] ''g / re / p'' ( '''''g''' lobally، ابحث عن '''r''' egular '''e''' xpression و '''p''' rint'' )، والذي له نفس التأثير: إجراء بحث عالمي باستخدام التعبير المنتظم وطباعة جميع خطوط المطابقة. <ref>هوبن وآخرون. 1997، الفصل 9</ref> <ref name="etymology">{{مرجع ويب
| url = http://www.catb.org/~esr/jargon/html/G/grep.html
| title = grep
| website = Jargon File
| archiveurl = https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html
| archivedate = 2006-06-17
| deadurl = no
| accessdate = 2006-06-29
| last = Raymond
| first = Eric
| author-link = Eric S. Raymond
}}</ref></span> <span data-segmentid="54" class="cx-segment">تم تطوير Grep في الأصل [[يونكس|لنظام]] التشغيل [[يونكس|Unix]]، ولكن تم توفيره لاحقًا لجميع [[شبيه يونكس|أنظمة Unix المشابهة]] وبعض الأنظمة الأخرى مثل [[OS-9]]. <ref>{{مرجع كتاب|last=Paul S. Dayan|year=1992|title=The OS-9 Guru - 1 : The Facts|publisher=Galactic Industrial Limited|ISBN=0-9519228-0-7}}</ref></span>


'''<code>grep</code>''' هي أداة مساعدة [[واجهة سطر الأوامر|لسطر]] الأوامر للبحث عن مجموعات بيانات النص العادي للخطوط التي تتطابق مع '''[[تعبير نمطي|التعابير النمطية]]''' {{إنج|Regular expression}} يأتي اسمه من الأمر [[إد (محرر نصوص)|ed]]، {{فاصل}} ''g/re/p'' {{فاصل}}('''g'''lobally '''r'''egular '''e'''xpression & '''p'''rint)، والذي له نفس التأثير: إجراء بحث عالمي باستخدام التعبير المنتظم وطباعة جميع خطوط المطابقة.<ref>هوبن وآخرون. 1997، الفصل 9</ref><ref name="etymology">{{استشهاد ويب| مسار = http://www.catb.org/~esr/jargon/html/G/grep.html
== <span data-segmentid="58" class="cx-segment">التاريخ</span> ==
| عنوان = grep
<span data-segmentid="59" class="cx-segment">قام [[كين تومسن|كين طومسون]] بكتابة النسخة الأولى من grep بين عشية وضحاها لمساعدة [[Lee E. McMahon|لي ماكماهون في]] تحليل نص [[الفيديراليست|الأوراق الفيدرالية]] لتحديد تأليف الأوراق الفردية. <ref>Computerphile، من ''أين جاء برنامج GREP''، مقابلة مع [[براين كيرنيغان]]، [https://www.youtube.com/watch?v=NTfOnGZUZDk https://www.youtube.com/watch؟v=NTfOnGZUZDk]</ref></span> <span data-segmentid="63" class="cx-segment">كان [[إد (محرر نصوص)|محرر نص ed]] (مؤلف أيضًا بواسطة Thompson) يدعم [[تعبير نمطي|تعبيرًا منتظمًا]] ولكن لا يمكن استخدامه على هذا القدر الكبير من النص، لذلك قام Thompson باقتطاع هذه التعليمة البرمجية إلى أداة قائمة بذاتها.</span> <span data-segmentid="66" class="cx-segment">اختار Thompson الاسم لأنه في ed، سيطبع الأمر ''g / re / p'' جميع الأسطر المطابقة لنمط محدد مسبقًا. <ref>{{مرجع ويب
| موقع = Jargon File
| url = http://perl.plover.com/classes/HoldSpace/samples/slide012.html
| مسار أرشيف = https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html
| title = ed regexes
| تاريخ أرشيف = 2006-06-17
| date =
| تاريخ الوصول = 2006-06-29
| website = perl.plover.com
| الأخير = Raymond
| archiveurl = https://web.archive.org/web/20171020031534/https://perl.plover.com/classes/HoldSpace/samples/slide012.html
| الأول = Eric
| archivedate = 20 October 2017
| وصلة مؤلف = Eric S. Raymond
| deadurl = no
|url-status=live}}</ref>
|accessdate = 24 أبريل 2018
| last =
}}</ref> <ref>{{مرجع ويب
| url = http://robots.thoughtbot.com/how-grep-got-its-name
| title = How Grep Got its Name
| date =
| website = robots.thoughtbot.com
| archiveurl = https://web.archive.org/web/20170809155158/https://robots.thoughtbot.com/how-grep-got-its-name
| archivedate = 9 August 2017
| deadurl = no
|accessdate = 24 أبريل 2018
| last =
}}</ref> تم تضمين grep لأول مرة في [[ريسيرش يونكس|الإصدار 4 Unix]].</span> <span data-segmentid="68" class="cx-segment">مشيرا إلى أنه "استشهد عادة ''باعتباره'' أداة برمجية نموذجية"، [[دوغلاس ماكلروي|دوغ ماكلروي]] الفضل البقرى مع "ingraining لا رجعة فيه" تومسون [[فلسفة يونكس|فلسفة أدوات]] في يونكس. <ref name="reader">{{Cite techreport}}</ref></span>


تم تطوير Grep في الأصل [[يونكس|لنظام]] التشغيل [[يونكس|Unix]]، ولكن تم توفيره لاحقًا لجميع [[شبيه يونكس|أنظمة Unix المشابهة]] وبعض الأنظمة الأخرى مثل OS-9.<ref>{{استشهاد بكتاب|الأخير=Paul S. Dayan|سنة=1992|عنوان=The OS-9 Guru - 1 : The Facts|ناشر=Galactic Industrial Limited|ISBN=0-9519228-0-7}}</ref>
== مثال ==
<span data-segmentid="72" class="cx-segment">يوضح المثال التالي إخراج الأمر <code>grep</code> المعطى <code>grep</code> مختلفة</span>


== التاريخ ==
<br /><source lang="shell">
قام [[كين تومسن|كين طومسون]] بكتابة النسخة الأولى من grep بين عشية وضحاها لمساعدة ''لي ماكماهون'' في تحليل نص [[أوراق الفيديراليست|الأوراق الفيدرالية]] لتحديد تأليف الأوراق الفردية<ref>Computerphile، من ''أين جاء برنامج GREP''، مقابلة مع [[براين كيرنيغان]]، [https://www.youtube.com/watch?v=NTfOnGZUZDk https://www.youtube.com/watch؟v=NTfOnGZUZDk] {{Webarchive|url=https://web.archive.org/web/20181111235644/https://www.youtube.com/watch?v=NTfOnGZUZDk |date=11 نوفمبر 2018}}</ref> كان [[إد (محرر نصوص)|محرر نص ed]] (طوره أيضًا تومسون) يدعم [[تعبير نمطي|تعبيرًا منتظمًا]] ولكن لا يمكن استخدامه على هذا القدر الكبير من النص، لذلك قام تومسون باقتطاع هذه التعليمة البرمجية إلى أداة قائمة بذاتها.

اختار تومسون الاسم لأنه على محرر ed، سيطبع الأمر ''g/re/p'' جميع الأسطر المطابقة لنمط محدد مسبقًا.<ref>{{استشهاد ويب| مسار = http://perl.plover.com/classes/HoldSpace/samples/slide012.html
| عنوان = ed regexes
| موقع = perl.plover.com
| مسار أرشيف = https://web.archive.org/web/20171020031534/https://perl.plover.com/classes/HoldSpace/samples/slide012.html
| تاريخ أرشيف = 20 October 2017
|تاريخ الوصول = 24 أبريل 2018
|url-status=live}}</ref><ref>{{استشهاد ويب| مسار = https://thoughtbot.com/blog/how-grep-got-its-name
| عنوان = How Grep Got its Name
| موقع = robots.thoughtbot.com
| مسار أرشيف = https://web.archive.org/web/20170809155158/https://robots.thoughtbot.com/how-grep-got-its-name
| تاريخ أرشيف = 9 August 2017
|تاريخ الوصول = 24 أبريل 2018
|url-status=live}}</ref> تم تضمين grep لأول مرة في [[ريسيرش يونكس|الإصدار 4 يونكس]]. مشيراً إلى أنه «استشَهد باعتباره أداة [[برمجية]] نموذجية»، [[دوغلاس ماكلروي|دوغ ماكلروي]] اعتبر جريب «لا رجعة فيه» مع [[فلسفة يونكس|فلسفة أدوات]] تومسون في يونكس.<ref name="reader">{{استشهاد بتقرير فني}}</ref>

== استخدام عادي ==
يوضح المثال التالي أوامر <code>grep</code> بنتائج مختلفة

<br /><syntaxhighlight lang="shell">
$ grep root /etc/passwd
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
سطر 74: سطر 70:
$ grep -c false /etc/passwd
$ grep -c false /etc/passwd
7
7
</syntaxhighlight>
</source>


== <span data-segmentid="75" class="cx-segment">الاختلافات</span> ==
== الاختلافات ==
<span data-segmentid="76" class="cx-segment">تتوفر مجموعة متنوعة من تطبيقات grep في العديد من أنظمة التشغيل وبيئات تطوير البرامج. <ref>{{Cite techreport}}</ref></span> <span data-segmentid="77" class="cx-segment">تضمنت المتغيرات المبكرة <code>egrep</code> و <code>fgrep</code>، المقدمة في [[نظام يونكس السابع|الإصدار 7 Unix]]. {{r|reader}} يطبق متغير " <code>egrep</code> " بناء جملة [[تعبير نمطي|تعبير عادي موسع]] تم إضافته إلى Unix بعد تنفيذ التعبير الأصلي العادي من قِبل [[كين تومسن|Ken Thompson]] بواسطة [[ألفرد أهو|Alfred Aho]]. <ref name="Huma1988">{{Cite journal|last=Hume|first=Andrew|title=A Tale of Two Greps|journal=Software—Practice & Experience|date=1988|volume=18|issue=11|page=1063}}</ref></span> <span data-segmentid="82" class="cx-segment">يبحث متغير " <code>fgrep</code> " عن أي قائمة من السلاسل ''الثابتة'' باستخدام [[Aho–Corasick string matching algorithm|خوارزمية مطابقة سلسلة Aho-Corasick]]. <ref name="Meurant1990">{{مرجع كتاب|last=Meurant|first=Gerard|title=Algorithms and Complexity|date=12 Sep 1990|publisher=Elsevier Science|page=278|url=https://books.google.co.in/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|accessdate=12 ديسمبر 2015|deadurl=no|archiveurl=https://web.archive.org/web/20160304084311/https://books.google.co.in/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|archivedate=4 March 2016}}</ref></span> <span data-segmentid="84" class="cx-segment">تستمر ثنائيات هذه المتغيرات في معظم الأنظمة الحديثة، ومع ذلك فقد تم إهمال استخدامها بشكل صريح وأدرجت وظائف هذه المتغيرات في <code>grep</code> سطر الأوامر <code>-E</code> و <code>-F</code> استخدام المفاتيح هو بالتالي طريقة الاستخدام الموصى بها. <ref>{{مرجع ويب
تتوفر مجموعة متنوعة من تطبيقات '''grep''' في العديد من أنظمة التشغيل وبيئات تطوير البرامج<ref name="reader" /> تضمنت المتغيرات المبكرة <code>egrep</code> و <code>fgrep</code>، المقدمة في [[نظام يونكس السابع|الإصدار 7 Unix]]. {{استشهاد متعدد|reader}} يطبق متغير " <code>egrep</code> " بناء جملة [[تعبير نمطي|تعبير عادي موسع]] تم إضافته إلى Unix بعد تنفيذ التعبير الأصلي العادي من قِبل [[كين تومسن|Ken Thompson]] بواسطة [[ألفرد أهو|Alfred Aho]].<ref name="Huma1988">{{استشهاد بدورية محكمة|الأخير=Hume|الأول=Andrew|عنوان=A Tale of Two Greps|صحيفة=Software—Practice & Experience|تاريخ=1988|المجلد=18|العدد=11|صفحة=1063}}</ref>
يبحث متغير " <code>fgrep</code> " عن أي قائمة من السلاسل ''الثابتة'' باستخدام خوارزمية مطابقة سلسلة Aho–Corasick <ref name="Meurant1990">{{استشهاد بكتاب|الأخير=Meurant|الأول=Gerard|عنوان=Algorithms and Complexity|تاريخ=12 Sep 1990|ناشر=Elsevier Science|صفحة=278|مسار=https://books.google.co.in/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|تاريخ الوصول=12 ديسمبر 2015|مسار أرشيف=https://web.archive.org/web/20160304084311/https://books.google.co.in/books?id=6WriBQAAQBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|تاريخ أرشيف=4 March 2016|url-status=live}}</ref>
تستمر ثنائيات هذه المتغيرات في معظم الأنظمة الحديثة، ومع ذلك فقد تم إهمال استخدامها بشكل صريح وأدرجت وظائف هذه المتغيرات في <code>grep</code> سطر الأوامر <code>-E</code> و <code>-F</code> استخدام المفاتيح هو بالتالي طريقة الاستخدام الموصى بها.<ref>{{استشهاد ويب| مسار = https://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| عنوان = grep
| url = http://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| موقع = www.pubs.opengroup.org
| title = grep
| ناشر = The Open Group
| website = www.pubs.opengroup.org
| مسار أرشيف = https://web.archive.org/web/20151128184349/http://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| publisher = The Open Group
| تاريخ أرشيف = 28 November 2015
| archiveurl = https://web.archive.org/web/20151128184349/http://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| archivedate = 28 November 2015
|تاريخ الوصول = 12 ديسمبر 2015
|url-status=live}}</ref>
| deadurl = no
== الاستخدام كفعل ==
|accessdate = 12 ديسمبر 2015
في ديسمبر 2003، أضاف ''[[قاموس أكسفورد الإنجليزي|قاموس أوكسفورد للغة الإنجليزية]] عبر الإنترنت'' إدخالات مسودة لـ "grep" كاسم وفعل.
}}</ref></span>


استخدام الفعل الشائع هو عبارة "You can't grep dead trees" - يمكن أن يؤدي البحث عن شخص بسهولة إلى البحث من خلال الوسائط الرقمية، باستخدام أدوات مثل grep، أكثر مما يمكن باستخدام نسخة ورقية (على سبيل المثال، واحدة مصنوعة من الأشجار الميتة، ورقة) مقارنة مع فعل ''[[جوجل]]''.


== روابط خارجية ==
== <span data-segmentid="105" class="cx-segment">الاستخدام كفعل</span> ==
<span data-segmentid="106" class="cx-segment">في ديسمبر 2003، أضاف ''[[قاموس أكسفورد الإنجليزي|قاموس أوكسفورد للغة الإنجليزية]] عبر الإنترنت'' إدخالات مسودة لـ "grep" كاسم وفعل.</span>

<span data-segmentid="108" class="cx-segment">استخدام الفعل الشائع هو عبارة "لا يمكنك grep الأشجار الميتة" - يمكن أن يؤدي البحث عن شخص بسهولة إلى البحث من خلال الوسائط الرقمية، باستخدام أدوات مثل grep، أكثر مما يمكن باستخدام نسخة ورقية (على سبيل المثال، واحدة مصنوعة من الأشجار الميتة، ورقة ). <ref>''[[Jargon File|ملف Jargon]]''، مقالة "وثائق"</ref></span> <span data-segmentid="109" class="cx-segment">مقارنة مع ''[[Google (verb)|جوجل]]''.</span>

== <span data-segmentid="163" class="cx-segment">روابط خارجية</span> ==
* {{موقع رسمي|https://www.gnu.org/software/grep/}}
* {{موقع رسمي|https://www.gnu.org/software/grep/}}
* [https://www.gnu.org/software/grep/manual/grep.html <span data-segmentid="164" class="cx-segment">الدليل الرسمي</span>]
* [https://www.gnu.org/software/grep/manual/grep.html الدليل الرسمي]
* <span data-segmentid="165" class="cx-segment">[http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html "لماذا GNU grep سريع"] - تفاصيل التنفيذ من مؤلف GNU grep.</span>
* [http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html «لماذا GNU grep سريع»] - تفاصيل التنفيذ من [[مؤلف]] GNU grep.
* <span data-segmentid="166" class="cx-segment">[http://ngrep.sourceforge.net/ Network grep] - أداة تحليل حزم تستخدم لمطابقة الأنماط في طبقة الشبكة</span>
* [http://ngrep.sourceforge.net/ Network grep - أداة تحليل حزم تستخدم لمطابقة الأنماط في طبقة الشبكة]


==المراجع==
== المراجع ==
{{مراجع}}
{{مراجع}}
{{تصنيف صندوق إنشاء مقالة}}


{{ضبط استنادي}}
{{شريط بوابات|برمجة الحاسوب|عقد 1990|لينكس|برمجيات حرة|برمجيات|معلوماتية}}{{برمجيات حرة}}{{لينكس}}
{{أوامر يونكس}}
[[تصنيف:برمجيات مشروع جنو]]
{{شريط بوابات|برمجة الحاسوب|عقد 1990|تقنية المعلومات|برمجيات|لينكس|برمجيات حرة}}{{برمجيات حرة}}{{لينكس}}
{{تصنيف كومنز|Grep}}

[[تصنيف:برامج يونكس القياسية]]
[[تصنيف:برامج يونكس القياسية]]
[[تصنيف:برمجيات مشروع جنو]]
[[تصنيف:خدمات مواصفات يونكس المنفردة]]
[[تصنيف:خدمات مواصفات يونكس المنفردة]]

النسخة الحالية 17:46، 21 سبتمبر 2023

grep هي أداة مساعدة لسطر الأوامر للبحث عن مجموعات بيانات النص العادي للخطوط التي تتطابق مع التعابير النمطية (بالإنجليزية: Regular expression)‏ يأتي اسمه من الأمر ed، ‏ g/re/p ‏(globally regular expression & print)، والذي له نفس التأثير: إجراء بحث عالمي باستخدام التعبير المنتظم وطباعة جميع خطوط المطابقة.[4][5]

تم تطوير Grep في الأصل لنظام التشغيل Unix، ولكن تم توفيره لاحقًا لجميع أنظمة Unix المشابهة وبعض الأنظمة الأخرى مثل OS-9.[6]

التاريخ[عدل]

قام كين طومسون بكتابة النسخة الأولى من grep بين عشية وضحاها لمساعدة لي ماكماهون في تحليل نص الأوراق الفيدرالية لتحديد تأليف الأوراق الفردية[7] كان محرر نص ed (طوره أيضًا تومسون) يدعم تعبيرًا منتظمًا ولكن لا يمكن استخدامه على هذا القدر الكبير من النص، لذلك قام تومسون باقتطاع هذه التعليمة البرمجية إلى أداة قائمة بذاتها.

اختار تومسون الاسم لأنه على محرر ed، سيطبع الأمر g/re/p جميع الأسطر المطابقة لنمط محدد مسبقًا.[8][9] تم تضمين grep لأول مرة في الإصدار 4 يونكس. مشيراً إلى أنه «استشَهد باعتباره أداة برمجية نموذجية»، دوغ ماكلروي اعتبر جريب «لا رجعة فيه» مع فلسفة أدوات تومسون في يونكس.[10]

استخدام عادي[عدل]

يوضح المثال التالي أوامر grep بنتائج مختلفة


$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

$ grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
12:operator:x:11:0:operator:/root:/sbin/nologin

$ grep -c false /etc/passwd
7

الاختلافات[عدل]

تتوفر مجموعة متنوعة من تطبيقات grep في العديد من أنظمة التشغيل وبيئات تطوير البرامج[10] تضمنت المتغيرات المبكرة egrep و fgrep، المقدمة في الإصدار 7 Unix. [10] يطبق متغير " egrep " بناء جملة تعبير عادي موسع تم إضافته إلى Unix بعد تنفيذ التعبير الأصلي العادي من قِبل Ken Thompson بواسطة Alfred Aho.[11] يبحث متغير " fgrep " عن أي قائمة من السلاسل الثابتة باستخدام خوارزمية مطابقة سلسلة Aho–Corasick [12] تستمر ثنائيات هذه المتغيرات في معظم الأنظمة الحديثة، ومع ذلك فقد تم إهمال استخدامها بشكل صريح وأدرجت وظائف هذه المتغيرات في grep سطر الأوامر -E و -F استخدام المفاتيح هو بالتالي طريقة الاستخدام الموصى بها.[13]

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

في ديسمبر 2003، أضاف قاموس أوكسفورد للغة الإنجليزية عبر الإنترنت إدخالات مسودة لـ "grep" كاسم وفعل.

استخدام الفعل الشائع هو عبارة "You can't grep dead trees" - يمكن أن يؤدي البحث عن شخص بسهولة إلى البحث من خلال الوسائط الرقمية، باستخدام أدوات مثل grep، أكثر مما يمكن باستخدام نسخة ورقية (على سبيل المثال، واحدة مصنوعة من الأشجار الميتة، ورقة) مقارنة مع فعل جوجل.

روابط خارجية[عدل]

المراجع[عدل]

  1. ^ ا ب Kernighan، Brian (1984). The Unix Programming Environment. Prentice Hall. ص. 102. ISBN:0-13-937681-X. مؤرشف من الأصل في 2019-12-15.
  2. ^ “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson نسخة محفوظة 2015-05-26 على موقع واي باك مشين., By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium
  3. ^ "grep-3.3 تم إصداره [مستقر]". مؤسسة البرمجيات الحرة. 20 ديسمبر 2018. مؤرشف من الأصل في 2018-12-28. اطلع عليه بتاريخ 2018-12-27. {{استشهاد ويب}}: الوسيط |الأول= يفتقد |الأخير= (مساعدة) والوسيط غير المعروف |الماضي= تم تجاهله (مساعدة)
  4. ^ هوبن وآخرون. 1997، الفصل 9
  5. ^ Raymond، Eric. "grep". Jargon File. مؤرشف من الأصل في 2006-06-17. اطلع عليه بتاريخ 2006-06-29.
  6. ^ Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN:0-9519228-0-7.
  7. ^ Computerphile، من أين جاء برنامج GREP، مقابلة مع براين كيرنيغان، https://www.youtube.com/watch؟v=NTfOnGZUZDk نسخة محفوظة 11 نوفمبر 2018 على موقع واي باك مشين.
  8. ^ "ed regexes". perl.plover.com. مؤرشف من الأصل في 2017-10-20. اطلع عليه بتاريخ 2018-04-24.
  9. ^ "How Grep Got its Name". robots.thoughtbot.com. مؤرشف من الأصل في 2017-08-09. اطلع عليه بتاريخ 2018-04-24.
  10. ^ ا ب ج (Technical report). {{cite tech report}}: الوسيط |title= غير موجود أو فارغ (مساعدة)
  11. ^ Hume، Andrew (1988). "A Tale of Two Greps". Software—Practice & Experience. ج. 18 ع. 11: 1063.
  12. ^ Meurant، Gerard (12 سبتمبر 1990). Algorithms and Complexity. Elsevier Science. ص. 278. مؤرشف من الأصل في 2016-03-04. اطلع عليه بتاريخ 2015-12-12.
  13. ^ "grep". www.pubs.opengroup.org. The Open Group. مؤرشف من الأصل في 2015-11-28. اطلع عليه بتاريخ 2015-12-12.