إتقان البحث عن أنماط النص في لينكس باستخدام Grep وتعبيرات منتظمة

استخدام التعبيرات Grep & العادية للبحث عن أنماط النص في Linux

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

ما هو Grep؟

grep هو اختصار لـ “Global Regular Expression Print”. إنه أداة سطر أوامر تتيح للمستخدمين البحث عن أنماط نص محددة داخل الملفات أو تدفقات الإدخال. يُستخدم على نطاق واسع في Linux وأنظمة التشغيل الشبيهة بيونكس بسبب بساطته وقدرات البحث القوية التي يوفرها.

صيغة grep الأساسية هي كما يلي:

$ grep [خيارات] النمط [ملف...]

هنا، يمثل “النمط” النمط التعبير المنتظم الذي ترغب في البحث عنه، ويشير “الملف” إلى الملف أو الملفات التي ترغب في البحث فيها. إذا لم يتم تحديد أي ملف، فسيقرأ grep من الإدخال القياسي.

فهم التعبيرات المنتظمة

التعبيرات المنتظمة (regex) هي سلسلة من الأحرف تحدد نمط البحث. إنها متعددة الاستخدامات بشكل لا يصدق ويمكن استخدامها لمطابقة سلاسل محددة أو أنماط أو حتى معايير معقدة داخل النص المعطى. تتكون التعبيرات المنتظمة من الأحرف العادية (مثل الحروف والأرقام) والأحرف الخاصة (مثل الحروف البدلية والمقياسات) التي تمنحها إمكانيات بحث قوية.

على سبيل المثال، ستطابق التعبير المنتظم ^Hello أي سطر في ملف يبدأ بكلمة “Hello”. بالمثل، سيطابق النمط ([A-Za-z]+)@([A-Za-z]+)\.com أي عنوان بريد إلكتروني في التنسيق “[email protected]“.

الاستخدام الأساسي لـ Grep والتعبيرات المنتظمة

دعنا نستكشف بعض الأمثلة العملية لفهم كيفية عمل grep والتعبيرات المنتظمة معًا.

البحث عن كلمة محددة في ملف

للبحث عن كلمة محددة في ملف، يمكنك استخدام grep مع تعبير منتظم أساسي. على سبيل المثال، للعثور على جميع حالات كلمة “Linux” في ملف يحمل اسم example.txt، يمكنك تشغيل الأمر التالي:

$ grep "Linux" example.txt

تجاهل حساسية الأحرف

بشكل افتراضي، يعمل grep بحساسية لحالة الأحرف. ومع ذلك، يمكنك جعله غير حساس لحالة الأحرف باستخدام الخيار -i. على سبيل المثال، للبحث عن كلمة “linux” بطريقة غير حساسة لحالة الأحرف، يمكنك استخدام الأمر التالي:

$ grep -i "linux" example.txt

البحث بشكل متكرر في المجلدات

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

$ grep -r "pattern" /path/to/directory

عرض أر

قام الأسطر

إذا كنت ترغب في عرض أرقام الأسطر إلى جانب الأسطر المطابقة، يمكنك استخدام الخيار -n. هذا مفيد بشكل خاص عند التعامل مع ملفات كبيرة، حيث يساعدك على تحديد مواقع حدوث نمط محدد بسرعة. فيما يلي مثال:

$ grep -n "pattern" example.txt

استخدام التعبيرات المنتظمة

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

على سبيل المثال، للبحث عن جميع الأسطر التي تحتوي على أرقام في ملف، يمكنك استخدام التعبير المنتظم [0-9]:

$ grep "[0-9]" example.txt

بالمثل، للبحث عن الأسطر التي تبدأ بنمط محدد، يمكنك استخدام رمز الرمز (^). على سبيل المثال، سيتطابق الأمر التالي مع الأسطر التي تبدأ بـ “Hello”:

$ grep "^Hello" example.txt

أمثلة متقدمة للتعبيرات المنتظمة

تقدم التعبيرات المنتظمة ميزات متقدمة مختلفة تعزز قدرات البحث في grep. إليك بعض الأمثلة:

  • مطابقة عدة أحرف: يمكنك استخدام النقطة (.) كحرف بدلية لمطابقة أي حرف واحد. على سبيل المثال، سيتطابق التعبير المنتظم b.t مع “bat” و”bet” و”bit” وما إلى ذلك.
  • المقياسات: يمكنك استخدام المقياسات لتحديد عدد حدوث حرف أو مجموعة. على سبيل المثال، سيتطابق ba*t مع “bt” و”bat” و”baat” وما إلى ذلك.
  • فئات الأحرف: تسمح لك الأقواس المربعة ([]) بتحديد فئة من الأحرف. على سبيل المثال، [aeiou] ستطابق أي حرف متحرك، و[0-9] ستطابق أي رقم.

بالتأكيد! فيما يلي بعض الخطوات الإضافية التي يمكنك تضمينها عند استخدام grep والتعبيرات المنتظمة للبحث عن أنماط النص في Linux:

استخدام المراسيم للمطابقة الدقيقة

المراسيم هي عناصر خاصة تسمح لك بتحديد موقع مطابقة النمط في سطر معين. المرسوم العنواني (^) يشير إلى بداية السطر، والمرسوم الدولاري ($) يشير إلى نهاية السطر. باستخدام المراسيم، يمكنك ضمان مطابقة النمط بالضبط في الموقع الذي ترغب فيه.

على سبيل المثال، للعثور على الأسطر التي تنتهي بكلمة “Linux” في ملف، يمكنك استخدام الأمر التالي:

$ grep "Linux$" example.txt

بالمثل، للبحث عن الأسطر التي تبدأ بـ “Hello” وتنتهي بـ “world”، يمكنك استخدام الأمر التالي:

$ grep "^Hello.*world$" example.txt

استبعاد الأنماط من البحث

في بعض الأحيان قد ترغب في استبعاد بعض الأنماط من نتائج البحث. يوفر grep الخيار -v لعكس المطابقة وعرض الأسطر التي لا تتطابق مع النمط المعطى.

على سبيل المثال، للبحث عن الأسطر في ملف لا تحتوي على كلمة “error”، يمكنك استخدام الأمر التالي:

$ grep -v "error" example.txt

البحث عن كلمات كاملة فقط

بشكل افتراضي، يقوم grep بمطابقة الأنماط التي تكون جزءًا من كلمة أكبر. إذا كنت ترغب في البحث عن كلمات كاملة فقط، يمكنك استخدام الخيار -w. هذا يضمن أن النمط يتطابق ككلمة كاملة وليس جزءًا من كلمة أخرى.

على سبيل المثال، للعثور على الأسطر التي تحتوي على كلمة “Linux” ككلمة كاملة، يمكنك استخدام الأمر التالي:

$ grep -w "Linux" example.txt

البحث عن أنماط في أنواع محددة من الملفات

إذا كنت ترغب في البحث عن أنماط في أنواع محددة من الملفات، يمكنك استخدام خيارات --include أو --exclude لتحديد أنماط الملفات. يتيح لك ذلك تحديد نطاق البحث في أنواع ملفات محددة، مما يوفر الوقت والجهد.

على سبيل المثال، للبحث عن نمط في جميع ملفات النص داخل دليل، يمكنك استخدام الأمر التالي:

$ grep "pattern" --include "*.txt" /path/to/directory

حفظ نتائج البحث في ملف

لحفظ نتائج البحث في ملف لمزيد من التحليل أو الإشارة إليها، يمكنك إعادة توجيه إخراج grep إلى ملف

باستخدام عامل التوجيه >.

على سبيل المثال، لحفظ جميع الأسطر التي تحتوي على كلمة “Linux” في ملف يحمل اسم results.txt، يمكنك استخدام الأمر التالي:

$ grep "Linux" example.txt > results.txt

الآن، ستتم تخزين الأسطر المتطابقة في ملف results.txt.

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

خلاصة

توفر مزيج grep والتعبيرات المنتظمة آلية قوية للبحث عن ومطابقة أنماط النص في Linux. من خلال استغلال مرونة وتعبيرية التعبيرات المنتظمة، يمكن للمستخدمين تنفيذ بحث دقيق ومعقد، مما يوفر الوقت والجهد.

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

من خلال إتقان grep والتعبيرات المنتظمة، يمكنك أن تصبح ماهرًا في البحث عن أنماط النص في Linux، مما يعزز إنتاجيتك وكفاءتك عند العمل مع الملفات والمجلدات.

LEAVE A COMMENT