جدای از grep و عبارتهای منظم، توزیع خوبی از انطباق الگو وجود دارد که میتوانید، بدون لزوم استفاده از برنامه خارجی به طور مستقیم در پوسته انجام دهید.
به طوری که از قبل می دانید، کاراکتر ستاره (*) و علامت پرسش (?) به ترتیب بر هر رشته یا هر کاراکتر منفرد منطبق میگردد. نقلقولی شده این کاراکترهای خاص با خود این کاراکترها انطباق مییابد:
cathy ~>
touch"*"
cathy ~>
ls"*"
*
همچنین میتوانید از کروشهها برای انطباق هر کاراکتر محصور شده در آنها یا دامنهای از کاراکترهای بین دو حرف که با خط تیره از هم جدا شدهاند، نیز استفاده نمایید. یک مثال:
cathy ~>
ls-ld
[a-cx-z]*
drwxr-xr-x 2 cathy cathy 4096 Jul 20 2002 app-defaults/ drwxrwxr-x 4 cathy cathy 4096 May 25 2002 arabic/ drwxrwxr-x 2 cathy cathy 4096 Mar 4 18:30 bin/ drwxr-xr-x 7 cathy cathy 4096 Sep 2 2001 crossover/ drwxrwxr-x 3 cathy cathy 4096 Mar 22 2002 xml/
این مثال فایلهای دایرکتوری خانگی کاربر cathy را که با حروف “a”، “b”، “c”، “x”، “y” یا “z” شروع میشوند را لیست میکند.
اگر اولین کاراکتر داخل کروشه علامت “!” یا “^” باشد، با هر کاراکتری که محصور در کروشهها نباشد منطبق میگردد. برای مطابقت با کاراکتر خط تیره، (“-”)، آن را به عنوان اولین یا آخرین کاراکتر مجموعه به کار ببرید. ترتیب کاراکترهای دامنه مطابق منطقه جاری، و در صورت برقرار بودن متغیر LC_COLLATE
نسبت به آن میباشد. به خاطر داشته باشید که سایر منطقهها، اگر مرتبسازی را به ترتیب دیکشنری انجام دهند، ممکن است “[a-cx-z]” را به عنوان “[aBbCcXxYyZz]” تفسیر کنند. اگر میخواهید از تفسیر سنتی دامنه مطمئن شوید، با تنظیم متغیر LC_COLLATE
یا LC_ALL
به مقدار “C” این رفتار را الزامی نمایید.
کلاسهای کاراکتر میتوانند در داخل کروشهها تعیین شوند، با کاربرد ترکیب [:CLASS:]، که در آن CLASS در استاندارد POSIX تعیین شده است و یکی از مقادیر
“alnum”، “alpha”، “ascii”، “blank”، “cntrl”، “digit”، “graph”، “lower”، “print”، “punct”، “space”، “upper”، “word” یا “xdigit” را دارد.
Some examples:
cathy ~>
ls-ld
[[:digit:]]*
drwxrwxr-x 2 cathy cathy 4096 Apr 20 13:45 2/cathy ~>
ls-ld
[[:upper:]]*
drwxrwxr-- 3 cathy cathy 4096 Sep 30 2001 Nautilus/ drwxrwxr-x 4 cathy cathy 4096 Jul 11 2002 OpenOffice.org1.0/ -rw-rw-r-- 1 cathy cathy 997376 Apr 18 15:39 Schedule.sdc
موقعی که گزینه extglob
فعال شده باشد(با استفاده از دستور داخلی shopt )، تعدادی عملگر انطباق الگوی توسعه یافته شناخته شده هستند. برای مطالب بیشتر در این مورد، صفحههای info از Bash ، در بخش
→ → → را ملاحظه کنید.