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


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

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

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

   ورود کاربران




 


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

آشنایی با awk بخش پنجم

(412 مجموع کلمات موجود در متن)
(5205 بار مطالعه شده است)  نسخه چاپی

آشنایی با awk بخش پنجم


توابع رشته‌ای
توابع این بخش بــرای انجــام عملیات پردازشی بــر روی متـــون بـــه کـار می‌روند. بخش‌هایی که در براکت ([]) قرار داده شده‌اند، انتخابی می‌باشند. در این بخش برخی از مهمترین این نوع توابع را با هم مرور خواهیم کرد.

assort(source [,dest])

این تابع محتویات آرایه را مرتب (sort) کرده و اندیس‌های آرایه را نیز با مقادیر عددی جایگزین می‌نماید. در صورتی که آرگومان دوم dest ارسال شود، تغییرات بر روی آن آرایه اعمال خواهد شد و آرایه source بدون تغییر باقی خواهد ماند. برای مثال، آرایه زیر را در نظر بگیرید که تابع asort بر روی آن اعمال شده است:

a["last"] = "de"	asort(a)	a[1] = “cul”
a["first"] = "sac"	===>		a[2] = “de”
a["middle"] = "cul"			a[3] = “sac”

assorti(source [, dest])

این تابع مشابه تابع asort عمل می‌کند با این تفاوت که در آن اندیس‌های آرایه‌ها مرتب می‌شوند. نحوه مرتب سازی به صورت رشته‌ای است.

index(in, find)

این تابع در رشته in برای وجود find جستجو کرده و شماره کاراکتر نخستین محل یافت شدن آنرا بر می‌گرداند. به مثال زیر توجه کنید:

$ awk 'BEGIN { print index("peanutan", "an") }'
3

در صورتی که هیچ موردی پیدا نشود، عــدد صفـــر بـرگردانده خواهد شد. توجه داشته باشید که اندیس‌های رشته‌ای در awk از عدد یک شروع می‌شوند.

length([string])

این تابع همانطور که از نام آن پیداست، طول رشته را بر می‌گــرداند. در صورتی که رشته از عدد تشکیل شده باشد، تعداد رقم‌ها برگردانده خواهد شد. به مثال زیر توجه کنید:

$ awk 'BEGIN { print length(35 * 15) }'
3

از آنـجــایی کـه حاصــل ضـــرب ۱۵ در ۳۵ بـرابر است با ۵۲۵ و عدد ۵۲۵ یک عدد سه رقمی است، در خروجی، عدد سه برگردانده شده است.

match(string,regexp [, array])

تابع match رشته را برای وجـــود بلنــدترین و سمــت چــپ ترین زیر رشته مشخص شده توسط regexp جستجو کرده و شماره کاراکتر محل وجود آنرا بر می‌گرداند. در صورتی که هیچ موردی یافت نشود، عدد صفر برگردانده خواهد شد.

split(string,array [, fieldsep])

این تـــابع متــن ورودی را بــه بخــش‌های جدا شــده تـوسط fieldsep تقسیم کرده و این بخش‌ها را در آرایه array ذخیره می‌کند. نخستــین قطعه در array با اندیس یک، دومین قطعه در array با اندیس دو و به همین ترتیب ذخیره می‌شوند. برای مثال:

$ awk 'BEGIN { print split("cul-de-sac", a, "-")}'
3

همانطور که می‌بینید، رشته cul-de-sac با واسطه کاراکتر جدا کننده – به سه بخش تقسیم می‌شود:

$ awk 'BEGIN { print split("cul-de-sac", a, "-");print a[1]; print a[2]; print a[3] }'
3
cul
de
sac
strtonum(str)

این تابع رشته str را بررسی کرده و مقدار عددی آنــرا بر می‌گرداند. در صورتی که رشته با عدد صفر شروع شود، تابع فرض می‌کند که با یک عــدد اکــتــال طـــرف اســت و در صــورتی کــه رشتــه بـا 0x یا 0X شروع شود، رشته را یک عدد هگزادسیمال فرض خواهد کرد. برای مثال:

$ awk 'BEGIN { print strtonum(0x11) }'
17

ترجمه و اضافات: آلن باغومیان alan@technotux.com
منبع: http://linuxgazette.net/issue67/nazario.html ، GNU/Awk User's Guide

PDF Version

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