البرنامج التعليمي للتعبير العادي في Linux: مثال Grep Regex
ما هي تعبيرات Linux العادية؟
تعبيرات لينكس العادية هي أحرف خاصة تساعد في البحث عن البيانات ومطابقة الأنماط المعقدة. يتم اختصار التعبيرات العادية إلى "regexp" أو "regex". يتم استخدامها في العديد من برامج Linux مثل grep وbash وrename وsed وما إلى ذلك.
أنواع التعبيرات العادية
لسهولة الفهم، دعونا نتعلم الأنواع المختلفة من Regex واحدًا تلو الآخر.
انقر اضغط هنا إذا لم يكن من الممكن الوصول إلى الفيديو
التعبيرات العادية الأساسية
بعض الأوامر الشائعة الاستخدام مع التعبيرات العادية هي tr وsed وvi و البقرى. المدرجة أدناه هي بعض من Regex الأساسية.
| رمز | أوصاف |
|---|---|
| . | يستبدل أي حرف |
| ^ | يطابق بداية السلسلة |
| $ | يطابق نهاية السلسلة |
| * | يطابق صفرًا أو أكثر من مرات الحرف السابق |
| \ | تمثيل الشخصيات الخاصة |
| () | مجموعات التعبيرات العادية |
| ? | يطابق حرفًا واحدًا بالضبط |
دعونا نرى مثالا.
قم بتنفيذ نموذج القط لرؤية محتويات ملف موجود
ابحث عن محتوى يحتوي على الحرف "أ".
'^' يطابق بداية السلسلة. فلنبحث عن المحتوى الذي يبدأ بـ
تتم تصفية الأسطر التي ت��دأ بالحرف فقط. يتم تجاهل الأسطر التي لا تحتوي على الحرف "a" في البداية.
دعونا ننظر إلى مثال آخر -
حدد فقط تلك الأسطر التي تنتهي بـ t باستخدام $
الفاصل الزمني التعبيرات العادية
تخبرنا هذه التعبيرات عن عدد مرات ظهور الحرف في السلسلة. هم
| التعبير | الوصف |
|---|---|
| {ن} | يطابق الحرف السابق الذي يظهر مرات "n" تمامًا |
| {ن ، م} | يطابق الحرف السابق الذي يظهر 'n' مرات ولكن ليس أكثر من m |
| {ن، } | يطابق الحرف السابق فقط عندما يظهر "n" مرات أو أكثر |
على سبيل المثال:
تصفية جميع الأسطر التي تحتوي على الحرف "p"
نريد التحقق من ظهور الحرف "p" مرتين بالضبط في سلسلة واحدة تلو الأخرى. لهذا سيكون بناء الجملة:
cat sample | grep -E p\{2}
ملحوظة: أنت بحاجة إلى إضافة -E مع هذه التعبيرات العادية.
التعبيرات العادية الموسعة
تحتوي هذه التعبيرات النمطية على مجموعات تتكون من أكثر من تعبير واحد. البعض منهم:
| التعبير | الوصف |
|---|---|
| \+ | يطابق تكرارًا واحدًا أو أكثر للحرف السابق |
| \? | يطابق صفرًا أو يتطابق مع تكرار واحد للحرف السابق |
على سبيل المثال:
البحث عن جميع الأحرف 't'
لنفترض أننا نريد تصفية الأسطر التي يسبق الحرف "أ" فيها الحرف "ت"
يمكننا استخدام الأمر مثل
cat sample|grep "a\+t"
توسيع هدفين
بناء جملة توسيع الأقواس هو إما تسلسل أو قائمة مفصولة بفواصل من العناصر الموجودة داخل الأقواس المتعرجة "{}". يتم فصل عناصر البداية والنهاية في التسلسل بنقطتين ".."
بعض الأمثلة:
في الأمثلة المذكورة أعلاه، يقوم أمر echo بإنشاء سلاسل باستخدام الأقواس الموسعّة.
ملخص:
- التعبيرات العادية هي مجموعة من الأحرف المستخدمة للتحقق من الأنماط في السلاسل
- ويطلق عليهم أيضًا اسم "regexp" و"regex"
- من المهم تعلم التعبيرات العادية لكتابة النصوص
- بعض التعبيرات العادية الأساسية هي:
| رمز | أوصاف |
|---|---|
| . | يستبدل أي حرف |
| ^ | يطابق بداية السلسلة |
| $ | يطابق نهاية السلسلة |
- بعض التعبيرات العادية الموسعة هي:
| التعبير | الوصف |
|---|---|
|
\+ |
يطابق تكرارًا واحدًا أو أكثر للحرف السابق |
| \? | يطابق صفرًا أو يتطابق مع تكرار واحد للحرف السابق |
- بعض التعبيرات العادية الفاصلة هي:
| التعبير | الوصف |
|---|---|
| {ن} | يطابق الحرف السابق الذي يظهر مرات "n" تمامًا |
| {ن ، م} | يطابق الحرف السابق الذي يظهر 'n' مرات ولكن ليس أكثر من m |
| {ن، } | يطابق الحرف السابق فقط عندما يظهر "n" مرات أو أكثر |
- يتم استخدام توسيع القوس لإنشاء سلاسل. يساعد في إنشاء سلاسل متعددة من سلسلة واحدة.










