نطاقات الشخصيات التقليدية
إذا أردنا إنشاء تعبير منتظم يبحث عن كل ملف في قوائمنا يبدأ بحرف كبير، فيمكننا القيام بذلك:
[me @ linuxbox ~] $ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
[me @ linuxbox ~] $ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
الأمر ببساطة هو وضع جميع الأحرف الكبيرة الستة والعشرين بين قوسين. لكن فكرة كل هذه الكتابة مُقلقة للغاية، لذا هناك طريقة أخرى:
[me @ linuxbox ~] $ grep -h '^[AZ]' dirlist*.txt
ماكيديف
لوحة التحكم GET
رأس العمود X X11
Xorg MAKEFLOPIES
مدير الشبكةمدير الشبكةالمرسل
[me @ linuxbox ~] $ grep -h '^[AZ]' dirlist*.txt
ماكيديف
لوحة التحكم GET
رأس العمود X X11
Xorg MAKEFLOPIES
مدير الشبكةمدير الشبكةالمرسل
باستخدام نطاق من ثلاثة أحرف، يمكننا اختصار الأحرف الستة والعشرين. أي نطاق من الأحرف -
يمكن التعبير عن المتغيرات بهذه الطريقة بما في ذلك نطاقات متعددة، مثل هذا التعبير الذي يطابق جميع أسماء الملفات التي تبدأ بأحرف وأرقام:
[me @ linuxbox ~] $ grep -h '^[A-Za-z0-9]' dirlist*.txt
[me @ linuxbox ~] $ grep -h '^[A-Za-z0-9]' dirlist*.txt
في نطاقات الأحرف، نرى أن حرف الشرطة يُعامل معاملة خاصة، فكيف نُضمّن حرف الشرطة في تعبير بين قوسين؟ بجعله الحرف الأول في التعبير. لننظر إلى هذين المثالين:
[me @ linuxbox ~] $ grep -h '[AZ]' dirlist*.txt
[me @ linuxbox ~] $ grep -h '[AZ]' dirlist*.txt
سيتطابق هذا مع كل اسم ملف يحتوي على حرف كبير.
[me @ linuxbox ~] $ grep -h '[-AZ]' dirlist*.txt
[me @ linuxbox ~] $ grep -h '[-AZ]' dirlist*.txt
سوف يتطابق مع كل اسم ملف يحتوي على شرطة، أو حرف "A" كبير أو حرف "Z" كبير.