محدوده شخصیت های سنتی
اگر میخواهیم یک عبارت منظم بسازیم که هر فایلی را در لیستهای ما به صورت - با حروف بزرگ جین میکند، میتوانیم این کار را انجام دهیم:
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
[me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt
فقط باید همه 26 حرف بزرگ را در یک عبارت براکت قرار دهید. اما ایده همه آن تایپ کردن عمیقاً نگران کننده است، بنابراین راه دیگری وجود دارد:
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
کنترل پنل GET
HEAD POST X X11
Xorg MAKEFLOPPIES
NetworkManager NetworkManagerDispatcher
[me@linuxbox ~]$ grep -h '^[AZ]' dirlist*.txt
MAKEDEV
کنترل پنل GET
HEAD POST X X11
Xorg MAKEFLOPPIES
NetworkManager NetworkManagerDispatcher
با استفاده از محدوده سه کاراکتری، می توانیم 26 حرف را مخفف کنیم. هر طیفی از شخصیت -
ters را می توان به این صورت بیان کرد که شامل چندین محدوده می شود، مانند این عبارت که با همه نام فایل هایی که با حروف و اعداد شروع می شوند مطابقت دارد:
[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" مطابقت دارد.