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

سرور مجازی NVMe

روش استفاده از دستور readarray برای خواندن آرایه دو بعدی در Bash

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


Bash یک زبان برنامه نویسی پوسته محبوب است که در سیستم عامل های لینوکس و یونیکس استفاده می شود. مجموعه ای غنی از دستورات و ویژگی هایی را ارائه می دهد که خودکار کردن کارهای تکراری را آسان می کند. “readarray” یکی از مفیدترین دستورات در Bash است. با این دستور می توان خطوط یک فایل را در یک آرایه دو بعدی خواند. در این پست، روش خواندن خطوط از یک فایل به یک آرایه دو بعدی با استفاده از دستور “readarray” Bash را بررسی خواهیم کرد.

استفاده از “readarray” در Bash

دستور ‘readarray’ خطوط را از یک فایل یا ورودی استاندارد می خواند و آنها را به یک آرایه اختصاص می دهد. نحو استفاده از “readarray” به شرح زیر است:

آرایه خواندنی [-d DELIM] [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] آرایه

گزینه های موجود برای دستور ‘readarray’ عبارتند از:

‘-d DELIM’: جداکننده را برای استفاده در هنگام تقسیم خطوط به عناصر آرایه تنظیم می کند و به طور پیش فرض، جداکننده یک کاراکتر خط جدید است.

‘-n COUNT’: حداکثر تعداد خطوط برای خواندن در آرایه را مشخص می کند.

“-O ORIGIN”: شاخص شروع آرایه را تنظیم می کند.

‘-s COUNT’: تعداد خطوطی که قبل از خواندن در آرایه باید رد شوند را مشخص می کند.

‘-t’: کاراکتر خط جدید انتهایی را از هر خط خوانده شده در آرایه حذف می کند.

در اینجا مثالی از استفاده از ‘readarray’ برای خواندن خطوط از یک فایل به یک آرایه دو بعدی آورده شده است و برای آن من یک testfile.txt که مطالب آن عبارتند از:

1 2 3
4 5 6
7 8 9

بنابراین در اینجا اسکریپت کامل bash است که استفاده از دستور ‘readarray’ را نشان می دهد:

#!/bin/bash
# خطوط را از یک فایل در آرایه بخوانید

پیشنهاد می‌کنیم بخوانید:  چگونه می توانم مجوز شل اسکریپت رد شده در لینوکس را برطرف کنم؟

آرایه خواندنی -t خطوط < testfile.txt
# یک آرایه دو بعدی با 3 سطر و 3 ستون اعلام کنید
اعلام آرایه
# روی خطوط تکرار کنید و هر خط را به عناصر تقسیم کنید
برای من که در خطوط ${![@]}; انجام دادن

IFS=“” خواندن -r عناصر <<< ${خطوط[i]}

برای j که در عناصر ${![@]}; انجام دادن

اگر [[ -n ${elements[j]} ]]; سپس

آرایه[$i,$j]=${عناصر[j]}

فی

انجام شده
انجام شده
# آرایه را چاپ کنید
برای ((من=0؛من<3;i++)); انجام دادن

برای ((j=0;j<3;j++)); انجام دادن

اکو -n ${آرایه[$i,$j]}

انجام شده

اکو
انجام شده

در اینجا ابتدا یک آرایه دو بعدی به نام “آرایه” اعلام کردم و سپس از دستور “readarray” برای خواندن خطوط از فایلی به نام “testfile.txt” در آرایه “lines” استفاده کردم. در مرحله بعد، کد روی آرایه خطوط تکرار می شود و هر خط را با استفاده از دستورات «IFS» و «خواندن» به عناصر تقسیم می کند.

پس از آن، عناصر را در آرایه دو بعدی “آرایه” ذخیره می کند و سپس از دستور خواندن برای تقسیم هر خط به عناصر استفاده می کند. اکنون هر عنصر به عنصر مربوطه در آرایه ‘array’ اختصاص داده می شود و در نهایت، محتویات آرایه ‘array’ با استفاده از حلقه های nested for چاپ می شود.

روش استفاده از دستور readarray برای خواندن آرایه دو بعدی در Bash

نتیجه

دستور ‘readarray’ دستکاری مقادیر زیادی از داده ها را در اسکریپت های Bash آسان می کند. با دنبال کردن مثال‌های ارائه‌شده در این مقاله، می‌توانید از «readarray» در اسکریپت‌های Bash خود برای خواندن خطوط از فایل‌ها و process آنها را به آرایه های دو بعدی تبدیل می کنند.

پیشنهاد می‌کنیم بخوانید:  16 مثال Bash Regular Expression (RegEx) با استفاده از دستورات grep، sed و awk
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-28 23:10:03

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

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

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