از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از آرایه در دستور awk
سرفصلهای مطلب
یک متغیر آرایه برای ذخیره بیش از یک داده استفاده می شود. این توسط بسیاری از زبان های برنامه نویسی برای ذخیره چندین داده پشتیبانی می شود. یک آرایه دو قسمت دارد. اینها کلید و ارزش هستند. کلید برای دسترسی به مکان مقدار استفاده می شود. یک آرایه می تواند عددی و انجمنی باشد. آرایه عددی فقط مقدار عددی را به عنوان کلید و آرایه انجمنی هم از مقدار عددی و هم مقدار شاخص را به عنوان کلید پشتیبانی می کند. یک آرایه انجمنی با دستور awk پشتیبانی می شود. روش تعریف، دسترسی یا تغییر آرایه انجمنی در دستور awk در این آموزش با استفاده از مثال های مختلف نشان داده شده است.
نحو:
یک نام باید برای متغیر آرایه اعلام شود. آرایه نام نام آرایه در اینجا است. هر آرایه باید از براکت سوم برای تعریف استفاده کند کلید یا فهرست مطالب و هر مقدار رشته ای برای آرایه انجمنی خواهد بود. ارزش می تواند هر کاراکتر، عدد یا رشته ای باشد که در فهرست خاص آرایه ذخیره می شود.
مثال-1: تعریف و خواندن آرایه یک بعدی در awk
یک آرایه تک بعدی می تواند یک لیست داده های ستونی را ذخیره کند. این نوع آرایه شامل یک کلید و مقدار برای هر عنصر آرایه است. این آرایه را می توان در دستور awk مانند سایر زبان های برنامه نویسی استفاده کرد. در این مثال، آرایه ای به نام کتاب با سه عنصر اعلام می شود و حلقه for برای خواندن و استفاده می شود print هر عنصر دستور زیر را از terminal.
کتاب[“JS”]”جاوا اسکریپت موثر”;
کتاب[“CSS”]”یادگیری طراحی وب”;}
END{برای (من در کتاب) print “کتاب “، من، ” است، کتاب[i];}’
خروجی:
مثال-2: تعریف و خواندن آرایه دو بعدی در awk
یک آرایه دو بعدی برای ذخیره لیست داده های جدولی که حاوی تعداد ثابتی از سطرها و ستون ها است استفاده می شود. آرایه دو بعدی به نام student در این مثال اعلام شده است که شامل سه عنصر است. در اینجا، شناسه دانشجو و نام به عنوان مقادیر کلیدی آرایه استفاده می شود. مانند مثال قبلی، حلقه for-in در اسکریپت awk به استفاده می شود print مقادیر آرایه اسکریپت زیر را از terminal.
دانش آموزان[“87462,Mohammed Ali”] = 87;
دانش آموزان[“98376,Sakib Al Hasan”] = 99;
دانش آموزان[“79937,Musfikur Rahman”] = 88;
print “(ID,Name) => علامت ها”;
}
END { برای (i در دانش آموزان) print “(“، i، “) => “، دانش آموزان[i]; }’
خروجی:
مثال-3: حذف عنصر آرایه
هر مقدار از آرایه را می توان بر اساس مقدار کلید حذف کرد. اینجا، کتاب آرایه ای با سه عنصر در ابتدای اسکریپت تعریف شده است. بعد، مقدار کلید HTML با استفاده حذف می شود حذف فرمان مقدار عنصر HTML کلید قبل و بعد از چاپ چاپ می شود حذف فرمان برای بررسی خروجی دستور زیر را اجرا کنید.
کتاب[“JS”] = “جاوا اسکریپت موثر”;
کتاب[“CSS”] = “یادگیری طراحی وب”;
print “قبل از حذف – “،کتاب[“HTML”];
حذف کتاب[“HTML”];
print “\nپس از حذف – “، کتاب[“HTML”];}’
خروجی:
خروجی نشان می دهد که مقدار HTML ایندکس پس از اجرا خالی است حذف فرمان
مثال-4: خواندن bash آرایه در awk
در مثال های قبلی، آرایه در دستور awk اعلام شده و توسط حلقه for-in تکرار می شود. اما شما می توانید هر کدام را بخوانید bash آرایه با اسکریپت awk. در این مثال، الف bash آرایه به نام زبان در دستور اول اعلام شده است. در دستور دوم، bash مقادیر آرایه به دستور awk ارسال می شود که همه عناصر را در یک آرایه awk به نام ذخیره می کند awkArray. مقادیر آرایه awkArray با استفاده از حلقه for چاپ می شوند. دستور زیر را از terminal برای بررسی خروجی
$ printf ‘%s\n’ “${lang[@]}“ | بیخیال ‘ { awkArray[NR] = $1} END { برای
(من در awkArray) print awkArray[i], “\n”; }’
مثال-5: خواندن محتوای فایل در یک آرایه awk
محتوای هر فایلی را می توان با استفاده از آرایه awk خواند. یک فایل متنی با نام ایجاد کنید bird.txt با مطالب ارائه شده در زیر
bird.txt
بلدرچین
طوطی خاکستری
بازیگر
برای خواندن مطالب از اسکریپت awk زیر استفاده می شود bird.txt فایل و ذخیره مقادیر در آرایه، awkArray. حلقه for برای تجزیه آرایه و print ارزش ها در terminal. اسکریپت زیر را از قسمت اجرا کنید terminal.
خروجی:
اسکریپت محتوای آن را چاپ می کند bird.txt.
مثال-6: حذف ورودی های تکراری از یک فایل
اسکریپت awk می تواند برای حذف داده های تکراری از هر فایل متنی استفاده شود. یک فایل متنی با نام ایجاد کنید fruits.txt با مطالب زیر دو داده تکراری در فایل وجود دارد. اینها هستند سیب و نارنجی.
fruits.txt
نارنجی
انگور
سیب
موز
نارنجی
گواوا
اسکریپت awk زیر هر خط را از فایل متنی می خواند، fruits.txt و بررسی کنید که خط فعلی در آرایه وجود دارد یا نه، arr. اگر خط در آرایه وجود داشته باشد، آن خط را در آرایه ذخیره نمی کند و نخواهد داشت print ارزش در terminal. بنابراین، اسکریپت فقط خطوط منحصر به فرد از فایل را در آرایه و ذخیره می کند print. دستورات را از terminal.
$ بیخیال ‘!(0$ به صورت ثابت) { print arr[$0]0 دلار؛ }’ fruits.txt
خروجی:
اراده اول print محتوای فایل، fruits.txt و فرمان دوم خواهد بود print محتوای fruits.txt پس از حذف خطوط تکراری از فایل.
نتیجه:
این آموزش کاربردهای مختلف آرایه را در اسکریپت awk با استفاده از مثال های مختلف همراه با توضیح نشان می دهد. آرایه Bash و هر محتوای فایل متنی نیز با استفاده از آرایه awk قابل دسترسی است. اگر در برنامه نویسی awk تازه کار هستید، این آموزش به شما کمک می کند تا کاربردهای آرایه awk را از پایه یاد بگیرید و بتوانید از آرایه در اسکریپت awk به درستی استفاده کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 19:49:03