راهنمای آموزشی اسکریپت نویسی - مقدماتی

لطفا برای بهتر دیدن صفحه از firefox استفاده کنید
Bash Guide for Beginners Machtelt Garrels

راهنمای Bash برای نوآموزان

مثال‌های کاربرد grep »
« خلاصه

انطباق الگو با استفاده از ویژگی‌های Bash

دامنه‌های کاراکتر

جدای از 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 ، در بخش

‎ Basic shell features → Shell Expansions → Filename Expansion → Pattern Matching‎را ملاحظه کنید.

مثال‌های کاربرد grep »
« خلاصه
ترجمه محمود پهلوانی