جريب (يونكس)
{{عن|3=جريب (توضيح)}}
{{بطاقة برمجية
| name = grep
| العنوان = grep
| screenshot =
| caption =
| collapsible =
| المؤلف = [[كين تومسن]]<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>
| المطور = [[مختبرات بل]] 
| released = {{تاريخ إطلاق وعمر|1974|11}}<ref name=history102 />
| latest release version = 3.3 <ref>{{استشهاد بويب| مسار = https://lists.gnu.org/archive/html/info-gnu/2018-12/msg00011.html
  | عنوان = grep-3.3 تم إصداره [مستقر]
  | الأول = جيم
  | الماضي = مايرنغ
  | ناشر = مؤسسة البرمجيات الحرة
  | تاريخ = 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>
| latest release date = {{تاريخ إطلاق وعمر|2018|12|20|df=yes}}
| programming language =
| platform = [[يونكس]] و[[شبيه يونكس]]، OS-9
| genre = [[أمر (حوسبة)|أمر]]
| license = [[رخصة جنو العمومية]]
| الموقع = {{مسار|https://www.gnu.org/software/grep/}}
| standard =
| AsOf =
}}

'''<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
| عنوان = grep
| موقع = Jargon File
| مسار أرشيف = https://web.archive.org/web/20060617052845/http://www.catb.org/~esr/jargon/html/G/grep.html
| تاريخ أرشيف = 2006-06-17
| تاريخ الوصول = 2006-06-29
| الأخير = Raymond
| الأول = Eric
| مؤلف-وصلة = Eric S. Raymond
|حالة المسار=live}}</ref>

تم تطوير 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>

== التاريخ ==
قام [[كين تومسن|كين طومسون]] بكتابة النسخة الأولى من 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
|حالة المسار=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
|حالة المسار=live}}</ref> تم تضمين grep لأول مرة في [[يونكس مركز البحوث|الإصدار 4 يونكس]]. مشيراً إلى أنه «استشَهد باعتباره أداة [[برمجية]] نموذجية»، [[دوغلاس ماكلروي|دوغ ماكلروي]] اعتبر جريب «لا رجعة فيه» مع [[فلسفة يونكس|فلسفة أدوات]] تومسون في يونكس.<ref name="reader">{{استشهاد بتقرير فني}}</ref>

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

<br /><syntaxhighlight lang="shell">
$ 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
</syntaxhighlight>

== الاختلافات ==
تتوفر مجموعة متنوعة من تطبيقات '''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|حالة المسار=live}}</ref>
تستمر ثنائيات هذه المتغيرات في معظم الأنظمة الحديثة، ومع ذلك فقد تم إهمال استخدامها بشكل صريح وأدرجت وظائف هذه المتغيرات في <code>grep</code> سطر الأوامر <code>-E</code> و <code>-F</code> استخدام المفاتيح هو بالتالي طريقة الاستخدام الموصى بها.<ref>{{استشهاد بويب| مسار = https://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| عنوان = grep
| موقع = www.pubs.opengroup.org
| ناشر = The Open Group
| مسار أرشيف = https://web.archive.org/web/20151128184349/http://pubs.opengroup.org/onlinepubs/009695399/utilities/grep.html
| تاريخ أرشيف = 28 November 2015
|تاريخ الوصول = 12 ديسمبر 2015
|حالة المسار=live}}</ref>
== الاستخدام كفعل ==
في ديسمبر 2003، أضاف ''[[قاموس أكسفورد الإنجليزي|قاموس أوكسفورد للغة الإنجليزية]] عبر الإنترنت'' إدخالات مسودة لـ "grep" كاسم وفعل.

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

== روابط خارجية ==
* [https://www.gnu.org/software/grep/manual/grep.html الدليل الرسمي]
* [http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html «لماذا GNU grep سريع»] - تفاصيل التنفيذ من [[مؤلف]] GNU grep.
* [http://ngrep.sourceforge.net/ Network grep - أداة تحليل حزم تستخدم لمطابقة الأنماط في طبقة الشبكة]

== المراجع ==
{{مراجع}}

{{ضبط استنادي}}
{{أوامر يونكس}}
{{روابط شقيقة|commons=Grep}}
{{شريط بوابات|برمجة الحاسوب|برمجيات|برمجيات حرة|تقانة المعلومات|عقد 1990|لينكس}}{{برمجيات حرة}}{{لينكس}}

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

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

 التاريخ 
قام كين طومسون بكتابة النسخة الأولى من grep بين عشية وضحاها لمساعدة لي ماكماهون في تحليل نص الأوراق الفيدرالية لتحديد تأليف الأوراق الفرديةComputerphile، من أين جاء برنامج GREP، مقابلة مع براين كيرنيغان، https://www.youtube.com/watch؟v=NTfOnGZUZDk  كان محرر نص ed (طوره أيضًا تومسون) يدعم تعبيرًا منتظمًا ولكن لا يمكن استخدامه على هذا القدر الكبير من النص، لذلك قام تومسون باقتطاع هذه التعليمة البرمجية إلى أداة قائمة بذاتها.

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

 استخدام عادي 
يوضح المثال التالي أوامر 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 في العديد من أنظمة التشغيل وبيئات تطوير البرامج تضمنت المتغيرات المبكرة egrep و fgrep، المقدمة في الإصدار 7 Unix.  يطبق متغير " egrep " بناء جملة تعبير عادي موسع تم إضافته إلى Unix بعد تنفيذ التعبير الأصلي العادي من قِبل Ken Thompson بواسطة Alfred Aho.
يبحث متغير " fgrep " عن أي قائمة من السلاسل الثابتة باستخدام خوارزمية مطابقة سلسلة Aho–Corasick 
تستمر ثنائيات هذه المتغيرات في معظم الأنظمة الحديثة، ومع ذلك فقد تم إهمال استخدامها بشكل صريح وأدرجت وظائف هذه المتغيرات في grep سطر الأوامر -E و -F استخدام المفاتيح هو بالتالي طريقة الاستخدام الموصى بها.
 الاستخدام كفعل 
في ديسمبر 2003، أضاف قاموس أوكسفورد للغة الإنجليزية عبر الإنترنت إدخالات مسودة لـ "grep" كاسم وفعل.

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

 روابط خارجية 
 الدليل الرسمي
 «لماذا GNU grep سريع» - تفاصيل التنفيذ من مؤلف GNU grep.
 Network grep - أداة تحليل حزم تستخدم لمطابقة الأنماط في طبقة الشبكة

 المراجع 

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