Jakie są tablice indeksu
Indeksowane tablice to zbiór elementów w BASH, do których można uzyskać dostęp za pomocą indeksu lub klucza. Te tablice mogą być używane do przechowywania i pobierania danych w określonej kolejności, co ułatwia zarządzanie dużymi ilością danych. Składnia deklarowania indeksowanej tablicy w Bash jest następująca:
= (element Element1 Element3…)
Tutaj nazwa array_name to nazwa tablicy, a element1, element2, element3 i tak dalej są wartości, które należy przechowywać w tablicy. Wartości są oddzielone przez Whitespace i zauważ, że możesz również użyć polecenia Declare, aby utworzyć tablicę.
Jak używać indeksowanych tablic w Bash
Aby utworzyć tablicę indeksu w BASH, musisz po prostu zadeklarować zmienną i przypisać jej wartości zamknięte w nawiasach i oddzielone przestrzeniami. Oto kilka przykładów, które pokazują, jak korzystać z indeksowanych tablic w Bash:
Zamawiień listę w Bash
Jeśli masz listę elementów w określonej kolejności i chcesz je zmienić w inny sposób. Możesz użyć tablicy indeksu, aby utworzyć nowe zamówienie dla elementów, w następujący sposób:
#!/bin/bash
przedmioty = („Mango” „ananas” „Strawberry” „Cherry” „Winogrona”)
kolejność = (4 2 0 3 1)
bo in „$ zamów [@]”
Do
echo $ Items [$ i]
zrobione
W tym przykładzie tworzymy tablicę o nazwie pozycje z pięcioma elementami. Tworzymy również tablicę indeksu o nazwie zamówienie, która określa nowe zamówienie dla elementów. Następnie zapętamy tablicę zamówienia i używamy każdej wartości jako indeksu do pobrania odpowiedniego elementu z tablicy elementów i wydruku.
Filtowanie listy w Bash
Jeśli masz listę elementów i chcesz odfiltrować niektóre elementy na podstawie warunku. Możesz użyć tablicy indeksu, aby śledzić wskaźniki elementów, które spełniają warunek, w następujący sposób:
#!/bin/bash
przedmioty = („Mango” „ananas” „Strawberry” „Cherry” „Winogrona”)
indeksy = ()
bo w „$ !rzeczy[@]"
Do
Jeśli [[$ items [$ i] == * "r" *]]]
Następnie
indeksy+= ($ i)
fi
zrobione
bo in „$ indices [@]”
Do
echo $ Items [$ i]
zrobione
W tym przykładzie tworzymy tablicę o nazwie pozycje z pięcioma elementami. Tworzymy również pustą tablicę indeksu o nazwie indeksy. Następnie zapętamy tablicę elementów i sprawdzamy, czy każdy element zawiera literę „R”. Jeśli tak, dodajemy jego indeks do tablicy indeksów. Wreszcie, zapętlimy tablicę indeksów i używamy każdej wartości jako indeksu do odzyskania odpowiedniego elementu z tablicy elementów i wydrukowania.
Liczenie wystąpień w Bash
Jeśli masz listę elementów i chcesz policzyć liczbę wystąpień każdego elementu, możesz użyć tablicy indeksu, aby śledzić liczby, a oto przykład demonstracji:
#!/bin/bash
przedmioty = („Mango” „ananas” „Strawberry” „Cherry” „Winogrona”)
Counts = ()
bo w „$ !rzeczy[@]"
Do
Jeśli [[ ! "$ Counts [@]" = ~ "$ items [$ i]"]]]
Następnie
Counts+= ("$ items [$ i] 1")
w przeciwnym razie
index = $ (echo "$ Counts [@]" | tr "'\ n' | grep -n"^$ items [$ i] "| cu)
count = $ (echo "$ Counts [$ index -1]" | cut -d "-f2)
Counts [$ index-1] = "$ items [$ i] $ ((count+1))"
fi
zrobione
dla liczby w „$ Counts [@]”
Do
echo $ Count
zrobione
Po raz pierwszy inicjuje tablicę o nazwie „elementy” z listą ciągów. Następnie deklaruje pustą tablicę o nazwie „Liczby”. A dla pętli jest tworzona, aby iterować dla każdego elementu w tablicy „Elementy” i dla każdego elementu, który sprawdza, czy już istnieje w tablicy „Counts”.
Jeśli nie istnieje, dodaje element i liczbę 1 do tablicy „liczby”. Jeśli istnieje, zwiększa liczbę tego elementu w tablicy „liczby”. Wreszcie, aby wydrukować każdy element, a jego odpowiednia liczba jest używana kolejna dla pętli. Dane wyjściowe tego kodu wydrukują liczbę każdego elementu w tablicy „Elementy”, a duplikaty zostaną zliczane osobno.
Aktualizacja listy w Bash
Jeśli masz listę elementów i chcesz dodać lub usunąć z nich elementy, możesz użyć do niej tablicy indeksu, a tutaj jest przykład demonstracji:
#!/bin/bash
przedmioty = („Mango” „ananas” „Strawberry” „Cherry” „Winogrona”)
# Dodanie nowego elementu do tablicy indeksowanej przy indeksie 2
Pozycje [6] = "Orange"
# Usuwanie elementu na indeksie 2 z indeksowanej tablicy
Niesetowe elementy [2]
# Drukowanie zaktualizowanej tablicy
echo "$ items [@]"
W skrypcie indeksowana tablica „elementy” jest zdefiniowane za pomocą pięciu początkowych elementów. Aby dodać nowy element, wartość jest po prostu przypisana do żądanego indeksu za pomocą tablicy składni [indeks] = wartość. W tym skrypcie „pomarańczowy” jest dodawany do indeksu 6 tablicy. Aby usunąć element, używamy polecenia UNSET, a następnie indeksu elementu, który chcemy usunąć. W takim przypadku element na indeksie 2 („truskawkowy”) jest usuwany. Zaktualizowana tablica jest następnie drukowana za pomocą składni „$ array [@]”, która rozszerza całą tablicę.
Wniosek
Indeksowane tablice są poręczną strukturą BASH, która umożliwia przechowywanie i manipulowanie wieloma wartościami za pomocą jednej zmiennej. Rozumiejąc składnię i wykorzystanie tablic indeksowanych, możesz napisać bardziej wydajne i skuteczne skrypty bash.