از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از آرایه های شاخص در Bash
سرفصلهای مطلب
آرایه های شاخص چیست؟
آرایه های نمایه شده مجموعه ای از عناصر در bash هستند که با استفاده از یک شاخص یا یک کلید قابل دسترسی هستند. از این آرایه ها می توان برای ذخیره و بازیابی داده ها به ترتیب خاصی استفاده کرد و مدیریت حجم زیادی از داده ها را آسان تر می کند. نحو برای اعلان یک آرایه نمایه شده در bash به شرح زیر است:
در اینجا array_name نام آرایه است و element1، element2، element3 و غیره روی مقادیری هستند که باید در آرایه ذخیره شوند. مقادیر با فضای خالی از هم جدا می شوند و توجه داشته باشید که می توانید از دستور declare نیز برای ایجاد یک آرایه استفاده کنید.
روش استفاده از آرایه های نمایه شده در Bash
برای ایجاد یک آرایه شاخص در bash، شما فقط باید یک متغیر را اعلام کنید و مقادیری را که در داخل پرانتز قرار گرفته و با فاصله از هم جدا شده اند به آن اختصاص دهید. در اینجا چند مثال وجود دارد که روش استفاده از آرایه های نمایه شده در bash را نشان می دهد:
ترتیب مجدد فهرست در Bash
اگر فهرستی از اقلام به ترتیب خاصی دارید و می خواهید آنها را به روشی دیگر سفارش دهید. می توانید از یک آرایه شاخص برای ایجاد یک سفارش جدید برای آیتم ها به شرح زیر استفاده کنید:
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
سفارش=(4 2 0 3 1)
برای من که در “${سفارش[@]}“
انجام دادن
اکو ${اقلام[$i]}
انجام شده
در این مثال، آرایه ای به نام آیتم ها با پنج عنصر ایجاد می کنیم. همچنین یک آرایه شاخص به نام order ایجاد می کنیم که ترتیب جدیدی را برای آیتم ها مشخص می کند. سپس از طریق آرایه سفارش حلقه می زنیم و از هر مقدار به عنوان یک شاخص برای بازیابی آیتم مربوطه از آرایه آیتم ها و چاپ آن استفاده می کنیم.
فیلتر کردن یک لیست در Bash
اگر لیستی از موارد دارید و می خواهید موارد خاصی را بر اساس فیلتر کنید روی یک شرط می توانید از یک آرایه شاخص برای پیگیری شاخص های مواردی که شرایط را برآورده می کنند استفاده کنید، به شرح زیر:
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
شاخص ها=()
برای من که در “${!اقلام[@]}“
انجام دادن
اگر [[ ${items[$i]} == *“ر”* ]]
سپس
شاخص ها+=($i)
فی
انجام شده
برای من که در “${شاخص[@]}“
انجام دادن
اکو ${اقلام[$i]}
انجام شده
در این مثال، آرایه ای به نام آیتم ها با پنج عنصر ایجاد می کنیم. همچنین یک آرایه شاخص خالی به نام اندیس ایجاد می کنیم. سپس در آرایه آیتم ها حلقه می زنیم و بررسی می کنیم که آیا هر آیتم حاوی حرف “r” است یا خیر. اگر این کار را کرد، شاخص آن را به آرایه اندیس ها اضافه می کنیم. در نهایت، از طریق آرایه شاخص ها حلقه می زنیم و از هر مقدار به عنوان شاخص برای بازیابی آیتم مربوطه از آرایه آیتم ها و چاپ آن استفاده می کنیم.
شمارش رخدادها در Bash
اگر لیستی از آیتم ها دارید و می خواهید تعداد دفعات هر آیتم را بشمارید، می توانید از یک آرایه شاخص برای پیگیری تعداد استفاده کنید و در اینجا یک مثال برای نمایش آورده شده است:
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
شمارش می کند=()
برای من که در “${!اقلام[@]}“
انجام دادن
اگر [[ ! “${counts[@]}“ =~ “${اقلام[$i]}“ ]]
سپس
شمارش +=(“${اقلام[$i]} 1″)
دیگر
فهرست مطالب=$(اکو “${شمار میشود[@]}“ | tr “” ‘\n’ | grep -n “^${اقلام[$i]}“ | مس)
شمردن=$(اکو “${شمار میشود[$index-1]}“ | برش -د“” -f2)
شمارش می کند[$index–1]=“${اقلام[$i]} $((count+1))”
فی
انجام شده
برای شمردن که در “${شمار میشود[@]}“
انجام دادن
اکو $count
انجام شده
ابتدا آرایه ای به نام “اقلام” را با لیستی از رشته ها مقداردهی اولیه می کند. سپس یک آرایه خالی به نام “counts” را اعلام می کند. یک حلقه for برای تکرار برای هر آیتم در آرایه “اقلام” ایجاد می شود و برای هر آیتم بررسی می کند که آیا از قبل در آرایه “counts” وجود دارد یا خیر.
اگر وجود نداشته باشد، آیتم و تعداد 1 را به آرایه “counts” اضافه می کند. اگر وجود داشته باشد، تعداد آن آیتم را در آرایه “counts” افزایش می دهد. در نهایت برای چاپ هر آیتم و تعداد مربوط به آن از حلقه for دیگری استفاده می شود. خروجی این کد تعداد هر آیتم را در آرایه “اقلام” چاپ می کند و موارد تکراری جداگانه شمارش می شود.
به روز رسانی یک لیست در Bash
اگر لیستی از آیتم ها دارید و می خواهید مواردی را از آن اضافه یا حذف کنید، می توانید از یک آرایه شاخص برای آن استفاده کنید و در اینجا یک مثال برای نمایش آورده شده است:
موارد=(“انبه” “آناناس” “توت فرنگی” “گیلاس” “انگور”)
# افزودن یک عنصر جدید به آرایه نمایه شده در شاخص 2
موارد[6]=“نارنجی”
# حذف عنصر در شاخص 2 از آرایه نمایه شده
تنظیم نشده موارد[2]
# چاپ آرایه به روز شده
اکو “${اقلام[@]}“
در اسکریپت یک آرایه نمایه شده “اقلام” با پنج عنصر اولیه تعریف شده است. برای افزودن یک عنصر جدید، مقدار به سادگی با استفاده از آرایه نحوی به شاخص مورد نظر اختصاص داده می شود[index]= ارزش در این اسکریپت، “نارنجی” به شاخص 6 آرایه اضافه می شود. برای حذف یک عنصر، از دستور unset و به دنبال آن شاخص عنصری که می خواهیم حذف کنیم استفاده می کنیم. در این حالت، عنصر موجود در شاخص 2 (“توت فرنگی”) حذف می شود. سپس آرایه به روز شده با استفاده از نحو “${array” چاپ می شود[@]}”، که کل آرایه را گسترش می دهد.
نتیجه
آرایه های نمایه شده یک ساختار مفید از bash هستند که به شما امکان می دهند چندین مقدار را با استفاده از یک متغیر واحد ذخیره و دستکاری کنید. با درک نحو و استفاده از آرایه های نمایه شده، می توانید اسکریپت های bash کارآمدتر و موثرتری بنویسید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 05:33:06