آشنایی با awk بخش ششم(474 مجموع کلمات موجود در متن) (4734 بار مطالعه شده است)  آشنایی
با awk
بخش
ششم
ادامه توابع رشتهای
sub(regexp,replacement [, target])
این
تابع مقدار target
را
تغییر میدهد به این نحو که به دنبال
چپترین و بلندترین زیر رشته منطبق بر
regexp جستجو
کرده و آنرا با replacement
جایگزین
مینماید و مقدار جدید، به عنوان مقدار
رشته target
قرار
داده میشود.
مقدار
regexp میتواند
یک Regular
Expression به
شکل `/..../`
یا یک
رشته معمولی به شکل "....”
باشد.
برای
مثال رشته str
را در
نظر بگیرید:
str = "water, water, everywhere"
sub(/at/, "ith", str)
مقدار جدید str پس از قرارگیری در تابع sub برابر خواهد بود با:
wither, water, everywhere
در صــورتی کــه در متــن رشته کـاراکتر & قرار داده شود، مقدار replacement جایگزین & خواهد شد. برای روشن شدن مطلب، به مثال زیر توجه کنید:
$ echo "candidate" | awk {'sub(/candidate/, "& and his wife")'}
candidate and his wife
برای اینکه اثــر اعمـــالی بـــر روی کـــاراکتر & را غیر فعال کنید، باید هنگام درج & در متن، از کاراکترهای &\\ بجای آن استفاده کنید. در صورتی که target مشخص نشده باشد، ورودی از 0$ خوانده خواهد شد.
gsub(regexp, replacement [,target])
تابع
gsub مشابه
با تابع sub
عمل
میکند با این تفاوت که در تمامی طول
ورودی یا فایل اعمال خواهد شد.
حرف g
که در
ابتدای نام تابع آورده شده است، به معنای
global یا
سراسری است.
برای
مثال عبارت زیر:
{ gsub(/Britain/, "United Kingdom"); print }
تمامی Britain
های
موجود در متن فایل یا ورودی را با United
Kingdom جایگزین
میکند.
در
صورتی که target
مشخص
نشده باشد، ورودی از 0$
خوانده
خواهد شد.
gensub(regexp,replacement,how[,target])
تابع
gensub
تابع
عمومی جایگزینی رشتهها است.
این
تابع مشابه با توابع sub
و
gsub
عمل
میکند با این تفاوت که رشته تغییر داده
شده بــه عنوان نتیجه عمل تابع بازگردانده
میشود.
در
صورتی که how
یک
رشته باشد که با g
یا
G
شروع
شده است، تابع به صورت global
عــمــل
خــواهــد کــرد و در غیــر اینــصــورت،
how
میتـواند
عددی تعیین کننده جایگزینی اعمال شده
باشد.
در
صورتی که target
مشخص
نشده باشد، ورودی از 0$
خوانده
خواهد شــد.
بــه
مثـال زیر توجه کنید:
$echo a b c a b c | gawk '{ print gensub(/a/, "AA", 2) }'
a b c AA b c
همانطور
که میبینید، دومین a
با
AA
جایگزین
شده است.
substr(string, start [, length])
تابع substr یک زیر رشته به طول length از رشتــه string کـــه از کــاراکتـر start شــروع شده است را باز خواهد گرداند. شماره نخستین کاراکتر، ۱ میباشد. در صورتی که آرگومان length ارسال نشود، کل زیر رشته باقیمانده از نقطه start باز گردانده خواهد شد.
tolower(string)
همانطور که از نام این تابع پیداست، یک کپی از رشتهای که تمامی حروف بزرگ آن با حروف کوچک جایگزین شده است را باز خواهد گرداند. کاراکترهای غیر حرفی بدون تغییر برگردانده میشوند. به مثال زیر توجه کنید:
$ echo "MiXed cAse 123" | awk {'print tolower($0)'}
mixed case 123
toupper(string)
این تابع برعکس تابع tolower عمل میکند. در این تابع نیز کاراکترهای غیر حرفی بدون تغییر برگردانده خواهند شد. به مثال زیر توجه کنید:
$ echo "MiXed cAse 123" | awk {'print toupper($0)'}
MIXED CASE 123
ترجمه
و اضافات: آلن
باغومیان alan@technotux.com
منبع:
http://linuxgazette.net/issue67/nazario.html
،
GNU/Awk
User's Guide
PDF Version
|