از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستور شرطی در دستور awk
سرفصلهای مطلب
دستور شرطی در هر زبان برنامه نویسی برای اجرای هر دستوری استفاده می شود روی یک شرایط خاص دستور شرطی بر اساس اجرا می شود روی مقدار true یا false وقتی از دستورهای if-else و if-elseif برای نوشتن دستور شرطی در برنامه نویسی استفاده می شود. Awk از انواع دستورات شرطی مانند سایر زبان های برنامه نویسی پشتیبانی می کند. روش استفاده از دستورات شرطی مختلف در دستور awk در این آموزش نشان داده شده است.
نحو:
نحو برای چهار نوع دستور شرطی در زیر ذکر شده است.
- اگر بیانیه
بیانیه
}
دستور زمانی اجرا می شود که شرط if true باشد.
- بیانیه اگر-دیگر
بیانیه-1
}
دیگر{
بیانیه-2
}
دستور-1 زمانی اجرا می شود که شرط if درست باشد و دستور-2 زمانی اجرا می شود که if return false باشد.
- بیانیه if-elseif
بیانیه-1
}
elseif{
بیانیه-2
}
elseif{
بیانیه-3
}
…….
دیگر{
بیانیه-n
}
این دستور شرطی برای اجرای دستور مبتنی بر استفاده می شود روی شرط اگر چندگانه اگر شرط اول نادرست باشد، شرط دوم را بررسی می کند. اگر شرط دوم نادرست باشد، شرط سوم را بررسی می کند و به همین ترتیب روی. اگر همه شرایط false برگردند، دستور else part را اجرا می کند.
- اپراتور سه تایی (?:)
عملگر سه تایی می تواند به عنوان جایگزین دستور if-else استفاده شود. اگر شرط درست باشد عبارت-1 اجرا می شود و اگر شرط نادرست باشد، دستور-2 اجرا می شود.
مثال-1: استفاده از simple if در awk
یک فایل متنی با نام ایجاد کنید emplyee.txt با مطالب زیر فرض کنید، شما باید نام بخش، سن و حقوق کارمندی که شناسه آن 11002 است را پیدا کنید.
staff.txt
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”;
}
}’
خروجی:
شناسه 1102 در فایل موجود است. بنابراین، مقادیر دیگر کارمند را چاپ کرد.
مثال-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خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود.
مثال-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 “کسی پیدا نشد”;
}
دستور زیر را برای اجرای فایل if_elseif.awk با person.txt اجرا کنید
خروجی:
پس از اجرای دستور خروجی زیر ظاهر می شود.
مثال-4: استفاده از عملگر سه تایی در awk
رشته سوم از person.txt فایل شامل حرفه هر فرد است. عملگر سه تایی زیر هر خط از فایل را می خواند و مقدار فیلد سوم را با ” مطابقت می دهد.مدیر“. اگر مقدار مطابقت داشته باشد، خواهد شد print نام شخص و در غیر این صورت خواهد بود print جنسیت فرد
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود. یک نفر با «حرفه مدیر در person.txt. بنابراین، نام یک نفر و جنسیت برای افراد دیگر چاپ می شود.
مثال-5: استفاده از چند شرط در دستور if
Logical OR و Logical AND می توانند برای تعریف چند شرط در دستور شرطی اسکریپت awk استفاده شوند. اسکریپت awk زیر هر خط را می خواند staff.txt و سن و نام را با مقادیر خاص بررسی می کند. از AND منطقی در اگر وضعیت. زمانی که ارزش سنی بزرگتر یا مساوی 30 باشد و نام آن “HR” باشد، شناسه و حقوق کارمند مربوطه خواهد بود. print.
$1، “و “، “حقوق: “، $4، “\n”;}’ staff.txt
خروجی:
پس از اجرای اسکریپت خروجی زیر ظاهر می شود. تنها یک کارمند با نام “HR” وجود دارد staff.txt. اطلاعات شناسنامه و حقوق این کارمند در اینجا چاپ شده است.
نتیجه:
رایج ترین موارد استفاده از دستور شرطی هر برنامه نویسی استاندارد با دستور awk پشتیبانی می شود. روش استفاده از شرایط تک و چندگانه در awk با استفاده از مثال های بسیار ساده در اینجا توضیح داده شده است. امیدواریم پس از تمرین این مثال ها، زبان آموز بتواند از دستور شرطی به درستی در اسکریپت awk استفاده کند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 19:34:03