مطابقة الأنماط باستخدام ميزات Bash

من موسوعة حسوب
مراجعة 14:50، 24 أغسطس 2018 بواسطة أسامه-دمراني (نقاش | مساهمات) (إدخال 2.0 إضافة محتوى)


مدى المحارف

خلافًا لأمر grep والتعابير النمطية (regular expressions)، فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن، ضع حوليهما علامات اقتباس مزدوجة:

hsoub ~> touch "*"

hsoub ~> ls "*"
*

لكن يمكنك أيضًا أن تستخدم الأقواس المربعة لمطابقة أي محرف، أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف بشَرطة -، انظر المثال التالي:

hsoub ~> ls -ld [a-cx-z]*
drwxr-xr-x    2 hsoub	 hsoub		4096 Jul 20  2002 app-defaults/
drwxrwxr-x    4 hsoub    hsoub          4096 May 25  2002 arabic/
drwxrwxr-x    2 hsoub    hsoub          4096 Mar  4 18:30 bin/
drwxr-xr-x    7 hsoub    hsoub          4096 Sep  2  2001 crossover/
drwxrwxr-x    3 hsoub    hsoub          4096 Mar 22  2002 xml/