OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

التناوب

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

للتوضيح ، سوف نستخدم البقرى بالتزامن مع صدى. أولاً ، لنجرب مطابقة سلسلة قديمة بسيطة:



[me @ linuxbox ~] $ صدى "AAA" | grep AAA

AAA

[me @ linuxbox ~] $ صدى "BBB" | grep AAA

[me @ linuxbox ~] $

[me @ linuxbox ~] $ صدى "AAA" | grep AAA

AAA

[me @ linuxbox ~] $ صدى "BBB" | grep AAA

[me @ linuxbox ~] $


مثال واضح ومباشر ، حيث نقوم بتوجيه إخراج صدى إلى البقرى ونرى النتائج. عندما تحدث المباراة ، نراها مطبوعة ؛ في حالة عدم حدوث تطابق ، لا نرى أي نتائج.

سنضيف الآن تناوبًا ، يُشار إليه بالحرف الأولي للشريط الرأسي:



[me @ linuxbox ~] $ صدى "AAA" | grep -E "AAA | BBB"

AAA

[me @ linuxbox ~] $ صدى "BBB" | grep -E "AAA | BBB"

BBB

[me @ linuxbox ~] $ صدى "CCC" | grep -E "AAA | BBB"

[me @ linuxbox ~] $

[me @ linuxbox ~] $ صدى "AAA" | grep -E "AAA | BBB"

AAA

[me @ linuxbox ~] $ صدى "BBB" | grep -E "AAA | BBB"

BBB

[me @ linuxbox ~] $ صدى "CCC" | grep -E "AAA | BBB"

[me @ linuxbox ~] $


هنا نرى التعبير النمطي "AAA | BBB"، وهو ما يعني "تطابق إما السلسلة AAA أو السلسلة BBB. " لاحظ أنه نظرًا لأن هذه ميزة موسعة ، فقد أضفنا الامتداد -E الخيار ل البقرى (على الرغم من أننا كنا قد استخدمنا ملف com.egrep بدلاً من ذلك) ، وقمنا بإرفاق التعبير العادي بين علامتي اقتباس لمنع الغلاف من تفسير الحرف الأولي للشريط الرأسي باعتباره مشغل أنابيب. لا يقتصر التناوب على خيارين:



[me @ linuxbox ~] $ صدى "AAA" | grep -E "AAA | BBB | CCC"

AAA

[me @ linuxbox ~] $ صدى "AAA" | grep -E "AAA | BBB | CCC"

AAA


لدمج التناوب مع عناصر التعبير العادي الأخرى ، يمكننا استخدام () لفصل البديل:



[me @ linuxbox ~] $ grep -Eh '^ (bz | gz | zip)' dirlist * .txt

[me @ linuxbox ~] $ grep -Eh '^ (bz | gz | zip)' dirlist * .txt


سيطابق هذا التعبير أسماء الملفات في قوائمنا التي تبدأ إما بـ "bz" أو "gz" أو "zip". لو تركنا الأقواس ، معنى هذا التعبير النمطي:



[me @ linuxbox ~] $ grep -Eh '^ bz | gz | zip' dirlist * .txt

[me @ linuxbox ~] $ grep -Eh '^ bz | gz | zip' dirlist * .txt


التغييرات لمطابقة أي اسم ملف يبدأ بـ "bz" أو يحتوي على "gz" أو يحتوي على "أزيز".


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: