برنامج Grep Command التعليمي - كيفية البحث عن ملف في Linux و Unix باستخدام البحث العودي

grepلتقف على البحث العالمي عن التعبير العادي والطباعة . إنها أداة سطر أوامر مستخدمة في أنظمة UNIX و Linux للبحث عن نمط محدد في ملف أو مجموعة من الملفات.

grepيأتي مع الكثير من الخيارات التي تسمح لنا بتنفيذ العديد من الإجراءات المتعلقة بالبحث على الملفات. في هذه المقالة ، سنلقي نظرة على كيفية استخدام grepالخيارات المتاحة بالإضافة إلى التعبيرات العادية الأساسية للبحث في الملفات.

كيف تستعمل grep

بدون تمرير أي خيار ، grepيمكن استخدامه للبحث عن نمط في ملف أو مجموعة من الملفات. الصيغة هي:

grep ''  

لاحظ أن علامات الاقتباس المفردة أو المزدوجة مطلوبة حول النص إذا كان أكثر من كلمة واحدة.

يمكنك أيضًا استخدام حرف البدل (*) لتحديد كل الملفات في الدليل.

نتيجة ذلك هي تكرارات النمط (بالسطر الموجود) في الملف (الملفات). إذا لم يكن هناك تطابق ، فلن تتم طباعة أي إخراج على الجهاز.

على سبيل المثال ، لنفترض أن لدينا الملفات التالية (تسمى grep.txt):

Hello, how are you I am grep Nice to meet you 

grepسيبحث الأمر التالي عن كل تكرارات كلمة "أنت":

grep you grep.txt 

والنتيجة هي:

Hello, how are you Nice to meet you 

you من المتوقع أن يكون له لون مختلف عن النص الآخر لتحديد ما تم البحث عنه بسهولة.

ولكن grepيأتي مع المزيد من الخيارات التي تساعدنا على تحقيق المزيد أثناء عملية البحث. دعونا نلقي نظرة على تسعة منهم أثناء تطبيقها على المثال أعلاه.

الخيارات المستخدمة مع grep

1. -n(- رقم الخط) - قائمة أرقام الأسطر

هذا يطبع التطابق للنص مع أرقام الأسطر إذا نظرت إلى النتيجة التي لدينا أعلاه ، ستلاحظ عدم وجود أرقام أسطر ، فقط المطابقات.

grep you grep.txt -n 

نتيجة:

1: Hello, how are you 3: Nice to meet you 

2. -c(--count) - طباعة عدد أسطر التطابقات

grep you grep.txt -c 

نتيجة:

2 

لاحظ أنه إذا كان هناك "أنت" آخر في السطر الأول ، -cفسيظل الخيار يطبع 2. هذا لأنه يتعلق بعدد الأسطر التي تظهر فيها المطابقات ، وليس عدد المطابقات.

3. -v(--invert-match) - يطبع الأسطر التي لا تتطابق مع النمط المحدد

grep you grep.txt -v -n 

نتيجة:

2. I am grep 

لاحظ أننا استخدمنا الخيار أيضًا -n؟ نعم ، يمكنك تطبيق خيارات متعددة في أمر واحد.

4. -i( - إغفال حالة) - تستخدم لحساسية حالة الأحرف

# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i 

النتائج:

# result 1 # no result # result 2 Hello, how are you Nice to meet you 

5. -l(--files-with-matches) - اطبع أسماء الملفات التي تطابق النمط

# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l 

النتائج:

# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively 
#### 6. `-w` (--word-regexp) - print matches of the whole word 

بشكل افتراضي ، grepيطابق السلاسل التي تحتوي على النمط المحدد. هذا يعني أنه grep yo grep.txtسيتم طباعة نفس النتائج grep yo grep.txtلأن "yo" يمكن العثور عليها فيك. وبالمثل ، "ou".

باستخدام الخيار -w، grepيضمن أن المطابقات هي نفس النمط تمامًا كما هو محدد. مثال:

grep yo grep.txt -w 

نتيجة:

لا نتيجة!

7. -o( - only-match) - اطبع النمط المطابق فقط

بشكل افتراضي ، grepيطبع السطر الذي يوجد به النمط المتطابق. باستخدام الخيار -o، تتم طباعة النمط المطابق فقط سطراً بسطر. مثال:

grep yo grep.txt -o 

نتيجة:

yo 

8. -A(- بعد السياق) و -B(- قبل السياق) - اطبع الأسطر بعد وبعد (على التوالي) النمط المطابق

grep grep grep.txt -A 1 -B 1 

نتيجة:

Hello, how are you I am grep Nice to meet you 

هذا النمط المطابق موجود في السطر 2. -A 1يعني سطرًا واحدًا بعد السطر المطابق -B 1ويعني سطرًا واحدًا قبل السطر المطابق.

يوجد أيضًا -Cخيار (--context) يساوي -A+ -B. القيمة التي تم تمريرها إلى -Cستستخدم ل -Aو -B.

9. -R(- المرجع - العودي) - البحث العودي

افتراضيا ، grepلا يمكن البحث في الدلائل. إذا حاولت القيام بذلك ، فسوف تحصل على خطأ ("هو دليل"). باستخدام الخيار -R، يصبح البحث عن الملفات داخل الدلائل والأدلة الفرعية ممكنًا. مثال:

grep you . 

نتيجة:

# 'you' matches in a folders # and files starting from the # current directory 

التعبيرات العادية للأنماط

grepيسمح أيضًا بالتعبيرات العادية الأساسية لتحديد الأنماط. اثنان منهم:

1. ^pattern- بداية السطر

هذا النمط يعني أن grepالإرادة تتطابق مع السلاسل التي تبدأ سطورها بالسلسلة المحددة بعدها ^. مثال:

grep ^I grep.txt -n 

نتيجة:

2: I 

2. pattern$- نهاية السطر

على النقيض من ^، $يحدد الأنماط التي سيتم مطابقتها إذا كان السطر ينتهي بالسلسلة من قبل $. مثال:

grep you$ grep.txt 

نتيجة:

1: Hello, how are you 3: Nice to meet you 

يتم إحتوائه

grepهي أداة قوية للبحث عن الملفات في الجهاز. يمنحك فهم كيفية استخدامه القدرة على العثور بسهولة على الملفات عبر الجهاز.

هناك المزيد من الخيارات المرفقة بهذه الأداة. يمكنك أن تجد مع man grep.