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

سرور مجازی NVMe

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

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


یک متغیر آرایه برای ذخیره بیش از یک داده استفاده می شود. این توسط بسیاری از زبان های برنامه نویسی برای ذخیره چندین داده پشتیبانی می شود. یک آرایه دو قسمت دارد. اینها کلید و ارزش هستند. کلید برای دسترسی به مکان مقدار استفاده می شود. یک آرایه می تواند عددی و انجمنی باشد. آرایه عددی فقط مقدار عددی را به عنوان کلید و آرایه انجمنی هم از مقدار عددی و هم مقدار شاخص را به عنوان کلید پشتیبانی می کند. یک آرایه انجمنی با دستور awk پشتیبانی می شود. روش تعریف، دسترسی یا تغییر آرایه انجمنی در دستور awk در این آموزش با استفاده از مثال های مختلف نشان داده شده است.

نحو:

آرایه نام[Key] = ارزش

یک نام باید برای متغیر آرایه اعلام شود. آرایه نام نام آرایه در اینجا است. هر آرایه باید از براکت سوم برای تعریف استفاده کند کلید یا فهرست مطالب و هر مقدار رشته ای برای آرایه انجمنی خواهد بود. ارزش می تواند هر کاراکتر، عدد یا رشته ای باشد که در فهرست خاص آرایه ذخیره می شود.

مثال-1: تعریف و خواندن آرایه یک بعدی در awk

یک آرایه تک بعدی می تواند یک لیست داده های ستونی را ذخیره کند. این نوع آرایه شامل یک کلید و مقدار برای هر عنصر آرایه است. این آرایه را می توان در دستور awk مانند سایر زبان های برنامه نویسی استفاده کرد. در این مثال، آرایه ای به نام کتاب با سه عنصر اعلام می شود و حلقه for برای خواندن و استفاده می شود print هر عنصر دستور زیر را از terminal.

$ echo | بیخیال شروع {کتاب[“HTML”]=”HTML Pocket Guide 2010″;
کتاب[“JS”]”جاوا اسکریپت موثر”;
کتاب[“CSS”]”یادگیری طراحی وب”;}
END{برای (من در کتاب) print “کتاب “، من، ” است، کتاب[i];}’

خروجی:

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

مثال-2: تعریف و خواندن آرایه دو بعدی در awk

یک آرایه دو بعدی برای ذخیره لیست داده های جدولی که حاوی تعداد ثابتی از سطرها و ستون ها است استفاده می شود. آرایه دو بعدی به نام student در این مثال اعلام شده است که شامل سه عنصر است. در اینجا، شناسه دانشجو و نام به عنوان مقادیر کلیدی آرایه استفاده می شود. مانند مثال قبلی، حلقه for-in در اسکریپت awk به استفاده می شود print مقادیر آرایه اسکریپت زیر را از terminal.

$ echo | بیخیال ‘شروع {
دانش آموزان[“87462,Mohammed Ali”] = 87;
دانش آموزان[“98376,Sakib Al Hasan”] = 99;
دانش آموزان[“79937,Musfikur Rahman”] = 88;
print “(ID,Name) => علامت ها”;
}
END { برای (i در دانش آموزان) print “(“، i، “) => “، دانش آموزان[i]; }’

خروجی:

پیشنهاد می‌کنیم بخوانید:  Bash Declare –a برای آرایه ها

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

مثال-3: حذف عنصر آرایه

هر مقدار از آرایه را می توان بر اساس مقدار کلید حذف کرد. اینجا، کتاب آرایه ای با سه عنصر در ابتدای اسکریپت تعریف شده است. بعد، مقدار کلید HTML با استفاده حذف می شود حذف فرمان مقدار عنصر HTML کلید قبل و بعد از چاپ چاپ می شود حذف فرمان برای بررسی خروجی دستور زیر را اجرا کنید.

$ echo | بیخیال شروع {کتاب[“HTML”] = “HTML Pocket Guide 2010”;
کتاب[“JS”] = “جاوا اسکریپت موثر”;
کتاب[“CSS”] = “یادگیری طراحی وب”;
print “قبل از حذف – “،کتاب[“HTML”];
حذف کتاب[“HTML”];
print “\nپس از حذف – “، کتاب[“HTML”];}’

خروجی:

خروجی نشان می دهد که مقدار HTML ایندکس پس از اجرا خالی است حذف فرمان

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

مثال-4: خواندن bash آرایه در awk

در مثال های قبلی، آرایه در دستور awk اعلام شده و توسط حلقه for-in تکرار می شود. اما شما می توانید هر کدام را بخوانید bash آرایه با اسکریپت awk. در این مثال، الف bash آرایه به نام زبان در دستور اول اعلام شده است. در دستور دوم، bash مقادیر آرایه به دستور awk ارسال می شود که همه عناصر را در یک آرایه awk به نام ذخیره می کند awkArray. مقادیر آرایه awkArray با استفاده از حلقه for چاپ می شوند. دستور زیر را از terminal برای بررسی خروجی

$ زبان=( “PHP” “ASP” “JSP” “C#” “C++” )

$ printf ‘%s\n’ ${lang[@]} | بیخیال ‘ { awkArray[NR] = $1} END { برای
(من در awkArray) print awkArray[i], “\n”; }’

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

مثال-5: خواندن محتوای فایل در یک آرایه awk

محتوای هر فایلی را می توان با استفاده از آرایه awk خواند. یک فایل متنی با نام ایجاد کنید bird.txt با مطالب ارائه شده در زیر

پیشنهاد می‌کنیم بخوانید:  Bash دریافت فهرست فعلی

bird.txt

کوکتل
بلدرچین
طوطی خاکستری
بازیگر

برای خواندن مطالب از اسکریپت awk زیر استفاده می شود bird.txt فایل و ذخیره مقادیر در آرایه، awkArray. حلقه for برای تجزیه آرایه و print ارزش ها در terminal. اسکریپت زیر را از قسمت اجرا کنید terminal.

$ بیخیال ‘{ awkArray[counter++] = 1 دلار؛ } END { برای (n=0؛ n print awkArray[n]”\n”; }’ bird.txt

خروجی:

اسکریپت محتوای آن را چاپ می کند bird.txt.

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

مثال-6: حذف ورودی های تکراری از یک فایل

اسکریپت awk می تواند برای حذف داده های تکراری از هر فایل متنی استفاده شود. یک فایل متنی با نام ایجاد کنید fruits.txt با مطالب زیر دو داده تکراری در فایل وجود دارد. اینها هستند سیب و نارنجی.

fruits.txt

سیب
نارنجی
انگور
سیب
موز
نارنجی
گواوا

اسکریپت awk زیر هر خط را از فایل متنی می خواند، fruits.txt و بررسی کنید که خط فعلی در آرایه وجود دارد یا نه، arr. اگر خط در آرایه وجود داشته باشد، آن خط را در آرایه ذخیره نمی کند و نخواهد داشت print ارزش در terminal. بنابراین، اسکریپت فقط خطوط منحصر به فرد از فایل را در آرایه و ذخیره می کند print. دستورات را از terminal.

$ گربه fruits.txt
$ بیخیال ‘!(0$ به صورت ثابت) { print arr[$0]0 دلار؛ }’ fruits.txt

خروجی:

اراده اول print محتوای فایل، fruits.txt و فرمان دوم خواهد بود print محتوای fruits.txt پس از حذف خطوط تکراری از فایل.

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

نتیجه:

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

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

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

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

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

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