ورود/ایجاد حساب کاربری
   منوی اصلی
· خانه
· لیست کاربران
· جستجو
· آمار مشاهدات
· آرشیو مقالات


- شرح
· راهنمای نویسندگان
· درباره ما

   همکاری با نشریه
در صورتی که مایل به همکاری با نشریه هستید، می‌توانید در لیست پستی نشریه عضو شده و در جریان امور قرار گیرید. برای اطلاعات بیشتر، اینجا کلیک کنید.

   کاربران
سردبیر
هیچ مدیر کمکی حاضر
همکاران
هیچ مدیر کمکی حاضر
اعضا:
جدیدترین:جدید امروز:0
جدیدترین:جدید دیروز:0
جدیدترین:مجموع:2471
جدیدترین:جدیدترین:
ufumenarayu
اعضا:حاضر
اعضا:اعضا:0
مهمان‌ها:مهمان‌ها:1
مجموع:مجموع:1
کاربران حاضر
هیچ کاربر حاضری وجود ندارد

   ورود کاربران




 


 برای ورود مشکل دارید؟
 ثبت نام کاربران جدید

آشنایی با 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

تمامی مطالب و مقالات این سایت تحت مجوز GNU FDL قرار دارند. بنابراین کپی و ایجاد تغییر در آنها مطابق شرایط این مجوز آزاد می‌باشد.