مثالهای کاربردی
پنج شنبه 2 دی 1389 7:16 AM
Hello world در اینجا یک برنامه hello world نوشته شده در awk موجود است:
{"!BEGIN { print "Hello, world
توجه داشته باشید که شما به یک عبارت صریح exit نیاز ندارید.تنها الگو BEGIN میباشد در هیچ خط دستور آرگومانها پردازش نمیشوند. چاپ خطهای بزرگتر از 80 کاراکتر تمام خطوط طویل تر از 80 کاراکتر را چاپ کن توجه داشته باشید که فعالیت پیش فرض چاپ خط جاری است.
length($0) > 80
چاپ شمارنده کلمات شمارنده کلمات در ورودی و چاپ خط ،کلمه و کاراکترها
{ w += NF c += length + 1 } { END { print NR, w, c
به عنوان مثال هیچ الگویی برای خط اول برنامه وجود ندارد.هر خطی از خروجی منطبق با پیش فرض بنابرای فعالیت کاهش برای هرخط اجرا میشود.توجه کنید که w += NF کوتاهتر برای w = w + NF. جمع کردن کلمات آخر
{ s += $NF } { END { print s + 0
S توسط ارزش عددی $NF توسعه داده شده که حرف آخر روی خط به عنوان زمینه جداکننده به وسیله awk تعریف شده به وسیله فضای خالی پیش فرض میباشد.NF شماره زمینهها در خط جاری میباشد . e.g. 4 از $4 ارزش زمینه 4 است . $NF ارزش آخرین زمینه در این خط صرف نظر از این که این خط دارای چه تعداد زمینه میباشد .یا اگر نسبت به خطوط اطراف بیشتر یا کمتر زمینه دارد . $ در حقیقت یک عملگر یگانی است که دارای بالاترین اولویت عملگرها میباشد.(اگر خط هیچ زمینهای نداشته باشد سپس NF 0, $0 تمام خط میباشد که در این مورد ممکن است بطور مجزا خالی از فضای سفید است.و بناباین ارزش عددی 0 را داردبرای اختصار {} در این مثالها حذف شده اند. در انتهای ورودی الگوی منطبق با END است بنابراین s چاپ میشود.به هر حال تا زمانیکه هیچ خط ورودی وجود نداشته باشد.در این حالت هیچ مقداری به s انتساب داده نمیشود این به طور پیش فرض یک رشته خالی است.اضافه کردن 0 به متغییرها یک اصطلاح Awk برای ناگزیر کردن از یک عدد به یک رشته ( تسلسل رشته خالی ناگزیر میکند از عدد به یک رشته eg )تو.جه داشته باشید .هیچ عملگری به الحاق رشتهها وجود ندارد.آنها فقط نزدیک جایگذاری میشوند .با ناگزیر بودن برنامه صفر را در ورودی خالی چاپ میکند .بدون آن یک خط خالی چاپ شده است.