في هذا الموضوع سنشرح الأمر grep بالتفصيل مع الأمثلة في نظام التشغيل Linux…
في عالم Linux، هناك أمر يُدعى “grep”، وهو اختصار لـ “Global Regular Expression Print”. يُعتبر أمر grep أداة قوية تستخدم للبحث في الملفات والنصوص بشكل سريع وفعال.
ما يميز أمر grep هو قدرته على توفير مرونة كبيرة في البحث باستخدام تعبيرات منتظمة (Regular Expressions)، مما يسمح لك بتحديد النمط الذي تبحث عنه بدقة فائقة. بغض النظر عن حجم الملف أو عدد النصوص المتاحة، يمكنك استخدام grep للعثور على الكلمة أو النمط المطلوب بسهولة، وعرض السطور المطابقة فقط.
من خلال استخدام خيارات متعددة، يمكنك تخصيص عملية البحث وتضمين أو استبعاد مجلدات معينة، وتحديد حالة الحروف (حساسة للحالة أو غير حساسة)، وتحديد العديد من الخيارات الأخرى التي تجعل عملية البحث أكثر قوة وفعالية.
مهما كانت احتياجاتك، ستجد في أمر grep أداة لا غنى عنها في عالم Linux. سواء كنت تبحث عن كلمة مفقودة في ملف ضخم، أو تحتاج إلى فحص نصوص متعددة للعثور على النمط المناسب، ستكون grep شريكك المثالي.
تابع معنا لاستكشاف الأمر grep بشكل أعمق ولتتعلم كيفية استخدامه بكفاءة للعثور على المعلومات التي تحتاجها بسرعة وسهولة في نظام Linux.
ما هو الأمر grep في Linux ؟
في Linux، أمر grep هو أداة قوية تستخدم للبحث في الملفات والنصوص باستخدام تعبيرات منتظمة (Regular Expressions). يقوم grep بفحص الملفات واستخراج السطور التي تحتوي على نمط محدد يتطابق مع النمط الذي تحدده.
تنسيق الأمر grep هو كالتالي:
grep [خيارات] نمط [ملفات]
- الخيارات: تسمح لك بتخصيص عملية البحث وتحديد سلوك grep. يمكنك استخدام العديد من الخيارات المختلفة مثل
-i
لجعل البحث غير حساس لحالة الأحرف،-r
للبحث داخل المجلدات الفرعية، و-v
لعكس النتائج وعرض السطور التي لا تتطابق مع النمط المحدد، وغيرها. - النمط: هو النمط الذي ترغب في البحث عنه. يمكن أن يكون النمط عبارة عن سلسلة نصية بسيطة أو تعبير منتظم معقد يوفر مرونة كبيرة في البحث.
- الملفات: تحدد الملفات التي تريد البحث فيها. يمكنك تحديد ملف واحد أو عدة ملفات، ويمكن استخدام الرمز “*” للإشارة إلى مجموعة من الملفات.
عند تشغيل الأمر grep، ستقوم الأداة بفحص الملفات المحددة واستخراج السطور التي تحتوي على النمط المحدد. سيتم عرض السطور المطابقة على الشاشة، مع إمكانية إضافة تنسيقات إضافية مثل تلوين النتائج أو عرض عدد السطور المطابقة.
أمر grep هو أداة رائعة للبحث عن معلومات محددة ضمن نصوص كبيرة، ويستخدم على نطاق واسع في البرمجة وإدارة النظام والتحليل اللغوي والكثير من استخدامات أخرى.
شرح الأمر grep مع الأمثلة
أمر grep هو أداة قوية للبحث في ملفات النص في نظام Linux باستخدام تعبيرات منتظمة. يتيح لك grep العثور على السطور التي تحتوي على نمط محدد وعرضها على الشاشة. يمكنك استخدام العديد من الخيارات لتخصيص عملية البحث وتحقيق نتائج محددة. هنا توضيح مفصل لبعض الخيارات الأكثر استخدامًا مع أمثلة توضيحية:
grep -i:
خيار -i
في أمر grep
يقوم بجعل عملية البحث غير حساسة لحالة الأحرف، مما يعني أنه لا يهم إذا كانت الأحرف كبيرة أو صغيرة في النص الذي يتم البحث فيه. هذا يعني أنه سيتم اعتبار A
و a
، أو B
و b
، وهكذا، كحرف واحد واحد.
لتوضيح كيف يعمل خيار -i
، هذا مثال توضيحي:
لنفترض أن لدينا ملف يسمى file.txt
ويحتوي على النص التالي:
Hello World
HELLO Universe
Goodbye
ونرغب في البحث عن كلمة “hello” باستخدام أمر grep
واستخدام خيار -i
لجعل البحث غير حساس لحالة الأحرف.
نقوم بتشغيل الأمر التالي:
grep -i "hello" file.txt
النتيجة المتوقعة هي:
Hello World
HELLO Universe
لاحظ أن “hello” تمت مطابقتها مع “Hello” و “HELLO” في النص الأصلي، حيث أن خيار -i
يجعل البحث غير حساس لحالة الأحرف.
بهذه الطريقة، يمكنك استخدام خيار -i
للبحث عن نمط معين دون الاهتمام بحالة الأحرف في النص المبحوث فيه.
grep -r:
خيار -r
في أمر grep
يستخدم للبحث عن نمط محدد داخل المجلدات الفرعية. يقوم grep
بتمشيط جميع المجلدات والملفات في المجلد الحالي والمجلدات الفرعية للعثور على التطابقات المطلوبة.
لنوضح كيفية عمل خيار -r
، هذا مثال توضيحي:
لنفترض أن لدينا المجلد /home/user
ويحتوي على الملفات التالية:
/home/user/file1.txt:
Hello World
/home/user/folder1/file2.txt:
HELLO Universe
/home/user/folder2/file3.txt:
Goodbye
ونرغب في البحث عن كلمة “Hello” داخل المجلد /home/user
وجميع المجلدات الفرعية باستخدام أمر grep
مع خيار -r
.
نقوم بتشغيل الأمر التالي:
grep -r "Hello" /home/user
النتيجة المتوقعة هي:
/home/user/file1.txt: Hello World
/home/user/folder1/file2.txt: HELLO Universe
ملاحظة: تمت إضافة اسم الملف مع النتائج المطابقة (مفصولة بعلامة النقطتين) للإشارة إلى الملف الذي تم العثور عليه.
بهذه الطريقة، يمكنك استخدام خيار -r
للبحث عن نمط معين داخل المجلدات الفرعية بالإضافة إلى الملفات في المجلد الحالي. يعد هذا الخيار مفيدًا عند العمل مع هيكل مجلدات معقد وتحتاج إلى البحث عن نمط محدد في العديد من الملفات في المجلدات الفرعية.
grep -v:
خيار -v
في أمر grep
يستخدم لعكس النتائج وعرض السطور التي لا تحتوي على النمط المحدد. بمعنى آخر، سيقوم grep
بعرض السطور التي لا تطابق النمط المحدد.
لنوضح كيفية عمل خيار -v
، هذا مثال توضيحي:
لنفترض أن لدينا ملف يسمى file.txt
ويحتوي على النص التالي:
apple
banana
orange
grape
ونرغب في البحث عن السطور التي لا تحتوي على كلمة “apple” باستخدام أمر grep
مع خيار -v
.
نقوم بتشغيل الأمر التالي:
grep -v "apple" file.txt
النتيجة المتوقعة هي:
banana
orange
grape
في هذا المثال، تم استخدام خيار -v
لعكس النتائج وعرض السطور التي لا تحتوي على كلمة “apple”. يتم استبعاد السطر الذي يحتوي على “apple” وعرض السطور الباقية.
يمكن استخدام خيار -v
لتصفية النتائج وعرض السطور التي لا تطابق النمط المحدد. يعد هذا الخيار مفيدًا عندما تحتاج إلى استبعاد أو استبعاد النتائج التي تحتوي على نمط محدد.
grep -l:
خيار -l
في أمر grep
يستخدم لعرض أسماء الملفات التي تحتوي على التطابقات المطلوبة بدلاً من عرض السطور المحتوية على التطابقات. يعني ذلك أنه سيتم عرض قائمة بأسماء الملفات التي تحتوي على التطابقات، بدلاً من عرض محتوى السطور المطابقة.
لنوضح كيفية عمل خيار -l
، هذا مثال توضيحي:
لنفترض أن لدينا مجلد يحتوي على ملفين: file1.txt
و file2.txt
. ولنفترض أن المحتوى في كل ملف هو كالتالي:
file1.txt:
Hello World
file2.txt:
Hello Universe
ونرغب في البحث عن كلمة “Hello” باستخدام أمر grep
مع خيار -l
لعرض أسماء الملفات التي تحتوي على التطابق.
نقوم بتشغيل الأمر التالي:
grep -l "Hello" *
النتيجة المتوقعة هي:
file1.txt
file2.txt
في هذا المثال، تم استخدام خيار -l
لعرض أسماء الملفات التي تحتوي على كلمة “Hello”. تم عرض file1.txt
و file2.txt
كنتيجة، ولكن لم يتم عرض محتوى السطور المطابقة.
يمكن استخدام خيار -l
عندما تحتاج إلى إيجاد قائمة بأسماء الملفات التي تحتوي على التطابقات المطلوبة، بدلاً من عرض محتوى السطور المطابقة. هذا مفيد عندما تكون مهتمًا بتحديد الملفات التي تحتوي على نمط محدد بدلاً من عرض المحتوى نفسه.
grep -n:
خيار -n
في أمر grep
يستخدم لعرض رقم السطر مع السطور التي تحتوي على التطابقات المطلوبة. يضيف هذا الخيار رقم السطر قبل كل سطر مطابق في نتائج البحث.
لنوضح كيفية عمل خيار -n
، هذا مثال توضيحي:
لنفترض أن لدينا ملف يسمى file.txt
ويحتوي على النص التالي:
Hello
World
Hello
Universe
ونرغب في البحث عن كلمة “Hello” باستخدام أمر grep
مع خيار -n
لعرض رقم السطر.
نقوم بتشغيل الأمر التالي:
grep -n "Hello" file.txt
النتيجة المتوقعة هي:
1: Hello
3: Hello
في هذا المثال، تم استخدام خيار -n
لعرض رقم السطر مع كل سطر يحتوي على كلمة “Hello”. ظهر رقم السطر قبل كل سطر مطابق، حيث يتم عرض “1: Hello” و “3: Hello” كنتيجة.
يمكن استخدام خيار -n
لعرض رقم السطر مع السطور التي تحتوي على التطابقات المطلوبة. هذا يفيد عندما تحتاج إلى معرفة رقم السطر الذي يحتوي على التطابق للإشارة إليه بشكل محدد.
grep -w:
خيار -w
في أمر grep
يستخدم للبحث عن كلمات كاملة فقط وليس جزءًا من كلمة. يقوم grep
بالبحث عن التطابقات التي تحتوي على الكلمة المحددة ككلمة مستقلة وليس جزءًا من كلمة أخرى.
لنوضح كيفية عمل خيار -w
، هذا مثال توضيحي:
لنفترض أن لدينا ملف يسمى file.txt
ويحتوي على النص التالي:
Hello
Hello World
World
ونرغب في البحث عن كلمة “Hello” باستخدام أمر grep
مع خيار -w
للبحث عن الكلمة ككلمة مستقلة.
نقوم بتشغيل الأمر التالي:
grep -w "Hello" file.txt
النتيجة المتوقعة هي:
Hello
في هذا المثال، تم استخدام خيار -w
للبحث عن الكلمة “Hello” ككلمة مستقلة. تم العثور على التطابق في السطر الأول “Hello” وتم عرضه كنتيجة. لم يتم عرض السطر الثاني “Hello World” لأن “Hello” في هذا السياق ليست كلمة مستقلة.
يمكن استخدام خيار -w
للبحث عن كلمات كاملة فقط وتجاهل التطابقات الجزئية في النص. هذا يفيد عندما تحتاج إلى البحث عن كلمة بشكل مستقل دون أن تتطابق مع جزء من كلمة أخرى.
هذه مجرد بعض الخيارات الشائعة لأمر grep في Linux. يمكنك استكشاف المزيد من الخيارات والتعلم العميق لأداة grep عن طريق قراءة الوثائق الخاصة بها أو استخدام الأمر man grep
في سطر الأوامر للحصول على مساعدة مفصلة حول كل خيار.
هذا والسلام عليكم ورحمة الله وبركاته…
( لا تنسا مشاركة الموضوع ليستفيد غيرك )