از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از دستور readarray برای خواندن آرایه دو بعدی در Bash
سرفصلهای مطلب
Bash یک زبان برنامه نویسی پوسته محبوب است که در سیستم عامل های لینوکس و یونیکس استفاده می شود. مجموعه ای غنی از دستورات و ویژگی هایی را ارائه می دهد که خودکار کردن کارهای تکراری را آسان می کند. “readarray” یکی از مفیدترین دستورات در Bash است. با این دستور می توان خطوط یک فایل را در یک آرایه دو بعدی خواند. در این پست، روش خواندن خطوط از یک فایل به یک آرایه دو بعدی با استفاده از دستور “readarray” Bash را بررسی خواهیم کرد.
استفاده از “readarray” در Bash
دستور ‘readarray’ خطوط را از یک فایل یا ورودی استاندارد می خواند و آنها را به یک آرایه اختصاص می دهد. نحو استفاده از “readarray” به شرح زیر است:
گزینه های موجود برای دستور ‘readarray’ عبارتند از:
‘-d DELIM’: جداکننده را برای استفاده در هنگام تقسیم خطوط به عناصر آرایه تنظیم می کند و به طور پیش فرض، جداکننده یک کاراکتر خط جدید است.
‘-n COUNT’: حداکثر تعداد خطوط برای خواندن در آرایه را مشخص می کند.
“-O ORIGIN”: شاخص شروع آرایه را تنظیم می کند.
‘-s COUNT’: تعداد خطوطی که قبل از خواندن در آرایه باید رد شوند را مشخص می کند.
‘-t’: کاراکتر خط جدید انتهایی را از هر خط خوانده شده در آرایه حذف می کند.
در اینجا مثالی از استفاده از ‘readarray’ برای خواندن خطوط از یک فایل به یک آرایه دو بعدی آورده شده است و برای آن من یک testfile.txt که مطالب آن عبارتند از:
4 5 6
7 8 9
بنابراین در اینجا اسکریپت کامل bash است که استفاده از دستور ‘readarray’ را نشان می دهد:
# خطوط را از یک فایل در آرایه بخوانید
آرایه خواندنی -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 خود برای خواندن خطوط از فایلها و process آنها را به آرایه های دو بعدی تبدیل می کنند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-28 23:10:03