0Pricing
DevOps Bootcamp · درس

‏Grep المتقدم باستخدام Regex

طبّقوا أنماط regex المعقدة مع 'grep' لإجراء عمليات بحث دقيقة وفعّالة عن النصوص داخل الملفات.

‏Grep المتقدم باستخدام Regex درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

إمكانات Regex الخارقة في Grep

مرحبًا بكم في درس Grep المتقدم باستخدام Regex! في الدرس السابق، تعلّمنا التعبيرات النمطية (Regex) نفسها. والآن، لنطلق العنان لإمكاناتها الكاملة ضمن الأمر القوي grep.

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

تفعيل التعبيرات النمطية الموسَّعة (-E)

يستخدم grep افتراضيًا التعبيرات النمطية الأساسية (BRE). ولاستخدام ميزات أكثر تقدمًا مثل + و? و| و()، نحتاج إلى تفعيل التعبيرات النمطية الموسَّعة (ERE).

يمكنكم إجراء ذلك باستخدام الخيار -E أو باستخدام الأمر egrep، الذي يعادل أساسًا grep -E. لننشئ ملفًا نموذجيًا للعمل عليه:

echo "apple
banana
appanana
orange
app" > fruits.txt

المكرِّرات: واحد أو أكثر (+)

يطابق المكرِّر + تكرارًا واحدًا أو أكثر للمحرف أو المجموعة السابقة. وهو مفيد جدًا عندما تتوقعون تكرار نمط مرة واحدة على الأقل.

على سبيل المثال، للعثور على الأسطر التي تحتوي على 'p' متبوعًا بحرف 'a' واحد أو أكثر، سنستخدم pa+.

grep -E 'pa+' fruits.txt

المكرِّرات: صفر أو أكثر (*)

يطابق المكرِّر * صفرًا أو أكثر من تكرارات المحرف أو المجموعة السابقة. ويفيد ذلك عندما يكون من الممكن وجود محرف، لكنه ليس مطلوبًا بالضرورة.

لنبحث عن الأسطر التي تحتوي على 'b' متبوعًا بصفر أو أكثر من أحرف 'a':

grep -E 'ba*' fruits.txt

المكرِّرات: صفر أو واحد (?)

يطابق المكرِّر ? صفرًا أو تكرارًا واحدًا للمحرف أو المجموعة السابقة. فكّروا فيه على أنه يجعل المحرف اختياريًا.

هل تريدون العثور على كلٍّ من 'color' و'colour'؟ يمكنكم جعل الحرف 'u' اختياريًا:

echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txt

تحديد الأعداد باستخدام {} (الأقواس المعقوفة)

لمزيد من التحكم، يمكنكم تحديد أعداد أو نطاقات دقيقة باستخدام الأقواس المعقوفة {}:

  • a{3}: ثلاثة أحرف 'a' بالضبط.
  • a{2,}: حرفا 'a' أو أكثر.
  • a{1,3}: من حرف 'a' واحد إلى ثلاثة أحرف.

لنبحث عن الأسطر التي يتكرر فيها الحرف 'a' مرتين بالضبط:

grep -E 'a{2}' fruits.txt

المثبِّتان: البداية والنهاية (^، $)

لا تطابق المثبِّتات المحارف، بل تطابق المواضع. يطابق المثبِّت ^ بداية السطر، ويطابق $ نهاية السطر.

وهذا ضروري لضمان مطابقة النمط للسطر بأكمله أو بدئه وانتهائه في الموضعين المقصودين تمامًا.

  • ^apple: الأسطر التي تبدأ بـ'apple'.
  • banana$: الأسطر التي تنتهي بـ'banana'.
  • ^apple$: الأسطر التي تحتوي على 'apple' فقط.
grep -E '^app' fruits.txt

التناوب باستخدام OR (|)

يعمل الرمز | (الخط العمودي) كمشغّل OR. ويتيح لكم مطابقة نمط أو نمط آخر. وهذا مفيد جدًا للبحث عن كلمات أو عبارات متعددة ومختلفة في الوقت نفسه.

على سبيل المثال، للعثور على الأسطر التي تحتوي على 'apple' أو 'orange':

grep -E 'apple|orange' fruits.txt

تجميع الأنماط باستخدام ()

تُستخدم الأقواس () لتجميع أجزاء من تعبير نمطي. ويتيح ذلك تطبيق المكرِّرات أو التناوب على مجموعة كاملة، لا على محرف واحد فقط.

على سبيل المثال، للعثور على ظهور 'ana' مرة واحدة أو أكثر بعد 'b':

grep -E 'b(ana)+' fruits.txt

اختبار سريع: Grep المتقدم

لنفترض أن الملف data.txt يحتوي على:

cat
cats
catt
catterpillar
dog

ما الأمر الذي سيعثر بشكل صحيح على الأسطر التي تحتوي على 'cat' متبوعة بصفر أو أكثر من أحرف 't'؟

مراجعة: قوة Regex في Grep

لقد أتقنتم تقنيات grep المتقدمة باستخدام التعبيرات النمطية الموسَّعة! وقد تناولنا ما يلي:

  • استخدام -E لميزات التعبيرات النمطية الموسَّعة.
  • المكرِّرات: + (واحد أو أكثر)، و* (صفر أو أكثر)، و? (صفر أو واحد)، و{} للأعداد المحددة.
  • المثبِّتات: ^ (بداية السطر) و$ (نهاية السطر).
  • التناوب | لشروط 'OR'.
  • تجميع الأنماط باستخدام ().

تتيح لكم هذه الأدوات إجراء عمليات بحث نصي دقيقة ومرنة للغاية، لتصبحوا سحرة حقيقيين في سطر الأوامر!

الأسئلة الشائعة

هل درس «‏Grep المتقدم باستخدام Regex» مجاني؟

نعم — نص درس «‏Grep المتقدم باستخدام Regex» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «‏Grep المتقدم باستخدام Regex»؟

طبّقوا أنماط regex المعقدة مع 'grep' لإجراء عمليات بحث دقيقة وفعّالة عن النصوص داخل الملفات. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «‏Grep المتقدم باستخدام Regex»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى Regular Expressions (Regex)
  2. ‏Grep المتقدم باستخدام Regex
  3. دمج Regex مع sed/awk
  4. مجموعات الالتقاط والمراجع الخلفية والاستبدال
← العودة إلى DevOps Bootcamp