الفرق بين المراجعتين لصفحة: «Bash/pattern matching using Bash features»

من موسوعة حسوب
إدخال 1.0، عنوان الصفحة
 
إدخال 2.0 إضافة محتوى
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:مطابقة الأنماط باستخدام ميزات Bash}}</noinclude>
<noinclude>{{DISPLAYTITLE:مطابقة الأنماط باستخدام ميزات Bash}}</noinclude>
== مدى المحارف ==
خلافًا لأمر grep والتعابير النمطية (regular expressions)، فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن، ضع حوليهما علامات اقتباس مزدوجة:<syntaxhighlight lang="bash">
hsoub ~> touch "*"
hsoub ~> ls "*"
*
</syntaxhighlight>لكن يمكنك أيضًا أن تستخدم الأقواس المربعة لمطابقة أي محرف، أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف بشَرطة -، انظر المثال التالي:<syntaxhighlight lang="bash">
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/
</syntaxhighlight>

مراجعة 14:50، 24 أغسطس 2018


مدى المحارف

خلافًا لأمر 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/