وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش استفاده از دستور شرطی در دستور awk

0 1
زمان لازم برای مطالعه: 2 دقیقه


دستور شرطی در هر زبان برنامه نویسی برای اجرای هر دستوری استفاده می شود روی یک شرایط خاص دستور شرطی بر اساس اجرا می شود روی مقدار true یا false وقتی از دستورهای if-else و if-elseif برای نوشتن دستور شرطی در برنامه نویسی استفاده می شود. Awk از انواع دستورات شرطی مانند سایر زبان های برنامه نویسی پشتیبانی می کند. روش استفاده از دستورات شرطی مختلف در دستور awk در این آموزش نشان داده شده است.

نحو:

نحو برای چهار نوع دستور شرطی در زیر ذکر شده است.

  1. اگر بیانیه
اگر (وضعیت){

بیانیه
}

دستور زمانی اجرا می شود که شرط if true باشد.

  1. بیانیه اگر-دیگر
اگر (وضعیت){

بیانیه-1
}
دیگر{

بیانیه-2
}

دستور-1 زمانی اجرا می شود که شرط if درست باشد و دستور-2 زمانی اجرا می شود که if return false باشد.

  1. بیانیه if-elseif
اگر (وضعیت){

بیانیه-1
}

elseif{

بیانیه-2
}

elseif{

بیانیه-3
}

…….
دیگر{

بیانیه-n
}

این دستور شرطی برای اجرای دستور مبتنی بر استفاده می شود روی شرط اگر چندگانه اگر شرط اول نادرست باشد، شرط دوم را بررسی می کند. اگر شرط دوم نادرست باشد، شرط سوم را بررسی می کند و به همین ترتیب روی. اگر همه شرایط false برگردند، دستور else part را اجرا می کند.

  1. اپراتور سه تایی (?:)
(وضعیت) ? بیانیه-1: بیانیه-2

عملگر سه تایی می تواند به عنوان جایگزین دستور if-else استفاده شود. اگر شرط درست باشد عبارت-1 اجرا می شود و اگر شرط نادرست باشد، دستور-2 اجرا می شود.

مثال-1: استفاده از simple if در awk

یک فایل متنی با نام ایجاد کنید emplyee.txt با مطالب زیر فرض کنید، شما باید نام بخش، سن و حقوق کارمندی که شناسه آن 11002 است را پیدا کنید.

staff.txt

11001 حراجی 45 3 دلار000
11002 منابع انسانی 32 1 دلار500
11003 بازار یابی 26 1 دلار200
11004 منابع انسانی 25 2 دلار500

یک شرط if ساده در اسکریپت زیر برای جستجوی id 11002 در فیلد اول فایل استفاده شده است. اگر شرط درست شود، آن وقت خواهد بود print مقادیر سایر فیلدهای خط مربوطه در غیر این صورت چیزی چاپ نخواهد شد.

$ بیخیال ‘{
if ($1 ==”11002″)
{
print “نام بخش: “,$2,”\n”;
print “سن: “,$3,”\n”;
print “حقوق: “,$4,”\n”;

پیشنهاد می‌کنیم بخوانید:  روش جایگزینی یک کاراکتر با شخصیت دیگر - Bash

}
}’ staff.txt

خروجی:

شناسه 1102 در فایل موجود است. بنابراین، مقادیر دیگر کارمند را چاپ کرد.

روش استفاده از دستور شرطی در دستور awk

مثال-2: استفاده از if-else در awk

فرض کنید، شما می خواهید print اطلاعات حقوق و دستمزد کارکنانی که سن آنها کمتر یا مساوی 40 سال است print اطلاعات سن برای سایر کارمندان اسکریپت awk زیر می تواند این کار را انجام دهد. فقط یک کارمند در آنجا است staff.txt پرونده ای که سن آن بیش از 40 سال و سن سایر کارکنان کمتر از 40 سال باشد.

$ بیخیال ‘{
if ($3 <= 40)
{
print “حقوق “,$1, ” is “, $4, “\n”
}
دیگر
{
print “سن “،$1،” “، $3، “\n” است
}

}’ staff.txt

خروجی:

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

روش استفاده از دستور شرطی در دستور awkروش استفاده از دستور شرطی در دستور awk

مثال-3: استفاده از if-elseif در اسکریپت awk

یک فایل متنی با نام person.txt با محتوای زیر ایجاد کنید.

person.txt

تجارت مرد جکسون
دارنده سرویس مردانه MARTIN
لیلی مدیر زن
رابینسون مدیر عامل مرد

یک فایل awk با نام ایجاد کنید if_elseif.awk با کد زیر به print رنگ مورد علاقه هر فردی که نامش در فایل موجود است. برای انجام این کار از دستور If-elseif در اسکریپت استفاده می شود. اسکریپت اولین مقدار فیلد فایل را می خواند، staff.txt و با یک مقدار خاص بررسی کنید. اگر اولی اگر شرط نادرست می شود سپس مورد دوم را بررسی می کند اگر شرایط و غیره روی. وقتی شرط اگر درست شد، یک مقدار رنگ به آن اختصاص داده می شود. اگر همه شرایط نادرست شوند، آنگاه هیچ یک به عنوان مقدار رنگ اختصاص داده می شود. رنگ مورد علاقه هر فرد خواهد بود print یا “هیچ شخصی پیدا نشد” اراده print اگر نام فردی مطابقت ندارد

if_elseif.awk

{
نام=1 دلار;
اگر ( نام==“جکسون” ) رنگ=“آبی”;
دیگر اگر (نام==“مارتین”) رنگ=“سیاه”;
دیگر اگر (نام==“زنبق”) رنگ=“قرمز”;
دیگر اگر (نام==“رابینسون”) رنگ=“سفید”;
دیگر رنگ=“هیچ یک”;

اگر(رنگ!=“هیچ یک”) print “رنگ مورد علاقه”، نام، “است “، رنگ؛
دیگر print “کسی پیدا نشد”;

پیشنهاد می‌کنیم بخوانید:  در Bash، اگر دستوری با شکست مواجه شد، دستورات دیگری را اجرا کنید

}

دستور زیر را برای اجرای فایل if_elseif.awk با person.txt اجرا کنید

$ بیخیال if_elseif.awk person.txt

خروجی:

پس از اجرای دستور خروجی زیر ظاهر می شود.

روش استفاده از دستور شرطی در دستور awkروش استفاده از دستور شرطی در دستور awk

مثال-4: استفاده از عملگر سه تایی در awk

رشته سوم از person.txt فایل شامل حرفه هر فرد است. عملگر سه تایی زیر هر خط از فایل را می خواند و مقدار فیلد سوم را با ” مطابقت می دهد.مدیر“. اگر مقدار مطابقت داشته باشد، خواهد شد print نام شخص و در غیر این صورت خواهد بود print جنسیت فرد

$ بیخیال ‘{ print ($3==”مدیر”) ? “Name is ” $1 : “جنسیت ” $2}” است person.txt

خروجی:

پس از اجرای اسکریپت خروجی زیر ظاهر می شود. یک نفر با «حرفه مدیر در person.txt. بنابراین، نام یک نفر و جنسیت برای افراد دیگر چاپ می شود.

روش استفاده از دستور شرطی در دستور awkروش استفاده از دستور شرطی در دستور awk

مثال-5: استفاده از چند شرط در دستور if

Logical OR و Logical AND می توانند برای تعریف چند شرط در دستور شرطی اسکریپت awk استفاده شوند. اسکریپت awk زیر هر خط را می خواند staff.txt و سن و نام را با مقادیر خاص بررسی می کند. از AND منطقی در اگر وضعیت. زمانی که ارزش سنی بزرگتر یا مساوی 30 باشد و نام آن “HR” باشد، شناسه و حقوق کارمند مربوطه خواهد بود. print.

$ بیخیال ‘{ if ($3 >= 30 && $2 == “HR”) print “شناسه کارمند: “،
$1، “و “، “حقوق: “، $4، “\n”;}’
staff.txt

خروجی:

پس از اجرای اسکریپت خروجی زیر ظاهر می شود. تنها یک کارمند با نام “HR” وجود دارد staff.txt. اطلاعات شناسنامه و حقوق این کارمند در اینجا چاپ شده است.

روش استفاده از دستور شرطی در دستور awkروش استفاده از دستور شرطی در دستور awk

نتیجه:

رایج ترین موارد استفاده از دستور شرطی هر برنامه نویسی استاندارد با دستور awk پشتیبانی می شود. روش استفاده از شرایط تک و چندگانه در awk با استفاده از مثال های بسیار ساده در اینجا توضیح داده شده است. امیدواریم پس از تمرین این مثال ها، زبان آموز بتواند از دستور شرطی به درستی در اسکریپت awk استفاده کند.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 19:34:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید