آشنایی با awk بخش چهارم(401 مجموع کلمات موجود در متن) (5354 بار مطالعه شده است)  آشنایی
با awk
بخش
چهارم
توابع
در awk تــوابع
در awk
به
دو دسته کلی تقسیم میشـــونــد.
تــوابـــع
درونی (Builtin)
و
تـــوابـــع تعـــریــف شـــده تـوسط
کاربر (User
Defined). تــوابــع
درونـــی خـــود به سه دسته اصلی عددی
(numeric)،
رشته (string)
و
ورودی/خروجی
(I/O)
تقسیم
میشــوند.
هــمـــواره
میتوانید از توابع درونی در برنامههای
awk
خود
استفاده کنید.
فراخوانی
توابع درونی برای
فراخوانی توابع درونی کافی است نام آنرا
به همراه آرگومانهای لازم درون پرانتر
بنویسید.
به
عنوان مثال:
atan2(y+z,
1)
بـــه
معنــای فراخوانی تابع atan2
است
که این تابع دارای دو آرگومان میباشد.
با
اینکه در awk
فضای
خالی بین پرانتر و نــام تــابـع درونی
نادیده گرفته میشود، بهتر است عادت کنید
تا از قرار دادن فاصله بین این دو خودداری
کنید.
در
هنگام فراخوانی توابع تعریف شده توسط
کاربر، چنین اجازهای به شما داده نخواهد
شد.
برخی
از توابع دارای تعداد مشخصی آرگومان هستند
که در برخـــی مـــوارد میتــوان آنــهـا
را نادیده گرفته و تابع را بدون آرگومان
فراخوانی کرد که در این حـــالــت
آرگـــومــانــهای پیشگزیده تـــابـع
استفاده خواهند شد.
به
این نوع آرگومانها، آرگومانهای اختیاری
اطلاق میگردد.
توابع
عددی در
این قسمت با تعدادی از توابع درونی عددی
آشنا خواهید شد.
آرگومانهای
اختیاری درون براکت نمایش داده شدهاند.
int(X)
این
تابع نزدیکترین عدد صحیح نزدیک به X
بین
X
و
صفر و گرد شده به سمت صفر را را بر خواهد
گرداند.
برای
مثال:
int(3)
=3, int(3.9) = 3, int(-3.9) = -3, int(-3) = -3
sqrt(X)
این
تابع مجزور X
را باز
خواهد گرداند.
برای
مثال:
sqrt(4)
= 2
exp(X)
این
تابع نمای X
را باز
خواهد گرداند.
در
صورتی کـــه X
خـارج
از محدوده باشد، یک پیغام خطا چاپ خواهد
کرد. محدوده
X بستگی
به پردازنده سیستم شما دارد.
log(X)
این
تابع لگاریتم X
را در
صورتی که X
مثبت
باشد، باز خواهد گرداند.
در غیر
اینصورت، پیغام خطایی چاپ میشود.
sin(X)
این
تابع سینوس زاویه X
را باز
خواهد گرداند.
cos(X)
این
تابع کسینوس زاویه X
را باز
خواهد گرداند.
atan2(y,x)
این
تابع آرکتانژانت زاویه y
به x
را باز
خواهد گرداند.
rand()
این
تابع یک عدد تصادفی بین صفر و یک باز خواهد
گرداند.
عدد
بازگشتی ممکن است صفر باشد، ولی هرگز یک
نخواهد بود.
معمولا
نیاز بیشتری به اعداد صحیح تصادفی وجود
دارد.
میتوانید
با نوشتن تابع سادهای مانند زیر، خودتان
این کار را انجام دهید:
function randint(n) {
return int(n * rand())
}
تابع بالا اعداد صحیح بین صفر و n-1 را بر خواهد گرداند.
srand([X])
این تابع یک نقطه شروع یا آغاز برای ایجاد اعداد تصادفی تا مـقدار X ایجاد میکند. در صورتی که X به تابع ارسال نشود، تاریخ و زمان کنونی به عنوان زمان آغازین در نظر گرفته خواهد شد.
ترجمه
و اضافات: آلن
باغومیان alan@technotux.com
منبع:
http://linuxgazette.net/issue67/nazario.html
،
GNU/Awk
User's Guide
PDF Version
|