Kako koristiti indeksne nizove u Bashu

Kako Koristiti Indeksne Nizove U Bashu



Bash pruža podršku za indeksirane nizove, koji su u biti popisi elemenata kojima se može pristupiti korištenjem njihovog broja indeksa. Indeksirani nizovi posebno su korisni kada želite pohraniti i manipulirati mnogim povezanim vrijednostima, dodatno pročitajte ovaj članak da biste saznali kako koristiti indeksne nizove.

Što su indeksni nizovi

Indeksirani nizovi su zbirka elemenata u bashu kojima se može pristupiti pomoću indeksa ili ključa. Ovi se nizovi mogu koristiti za pohranjivanje i dohvaćanje podataka određenim redoslijedom, što olakšava upravljanje velikim količinama podataka. Sintaksa za deklariranje indeksiranog niza u bashu je sljedeća:

< ime_matra > = ( element1 element2 element3 ... )

Ovdje je array_name naziv polja, a element1, element2, element3 i tako dalje su vrijednosti koje treba pohraniti u polje. Vrijednosti su odvojene razmakom i imajte na umu da također možete koristiti naredbu deklariranja za stvaranje niza.







Kako koristiti indeksirane nizove u Bashu

Da biste stvorili indeksni niz u bashu, jednostavno trebate deklarirati varijablu i dodijeliti joj vrijednosti unutar zagrada i odvojene razmacima. Evo nekoliko primjera koji pokazuju kako koristiti indeksirane nizove u bashu:



Promjena redoslijeda popisa u Bashu

Ako imate popis stavki u određenom redoslijedu i želite ih promijeniti na drugačiji način. Možete koristiti polje indeksa za stvaranje novog redoslijeda za stavke, kako slijedi:



#!/bin/bash
stavke = ( 'Mango' 'Ananas' 'Jagoda' 'Trešnja' 'Grožđe' )
narudžba = ( 4 2 0 3 1 )
za ja u ' ${order[@]} '
čini
jeka ${items[$i]}
učinjeno

U ovom primjeru stvaramo polje pod nazivom items s pet elemenata. Također stvaramo polje indeksa pod nazivom poredak, koje navodi novi redoslijed za stavke. Zatim prolazimo kroz niz narudžbi i koristimo svaku vrijednost kao indeks da dohvatimo odgovarajuću stavku iz niza stavki i ispišemo je.





Filtriranje popisa u Bashu

Ako imate popis stavki i želite filtrirati određene stavke na temelju uvjeta. Možete koristiti polje indeksa za praćenje indeksa stavki koje ispunjavaju uvjet, kako slijedi:



#!/bin/bash
stavke = ( 'Mango' 'Ananas' 'Jagoda' 'Trešnja' 'Grožđe' )
indeksi = ( )

za ja u ' ${!items[@]} '
čini
ako [ [ ${items[$i]} == * 'r' * ] ]
zatim
indeksi+= ( $i )
biti
učinjeno

za ja u ' ${indexes[@]} '
čini
jeka ${items[$i]}
učinjeno

U ovom primjeru stvaramo polje pod nazivom items s pet elemenata. Također stvaramo prazan niz indeksa koji se zove indeksi. Zatim prolazimo kroz niz stavki i provjeravamo sadrži li svaka stavka slovo 'r'. Ako ima, dodajemo njegov indeks u polje indeksa. Na kraju, prolazimo kroz polje indeksa i koristimo svaku vrijednost kao indeks za dohvaćanje odgovarajuće stavke iz polja stavki i ispisivanje.

Brojanje pojavljivanja u Bashu

Ako imate popis stavki i želite izbrojati broj pojavljivanja svake stavke, možete koristiti indeksni niz da biste pratili brojeve, a evo primjera za demonstraciju:

#!/bin/bash
stavke = ( 'Mango' 'Ananas' 'Jagoda' 'Trešnja' 'Grožđe' )
broji = ( )

za ja u ' ${!items[@]} '
čini
ako [ [ ! ' ${counts[@]} ' =~ ' ${items[$i]} ' ] ]
zatim
broji += ( ' ${items[$i]} 1' )
drugo
indeks =$ ( jeka ' ${counts[@]} ' | tr ' ' '\n' | zahvat -n '^ ${items[$i]} ' | s )
računati =$ ( jeka ' ${counts[$index-1]} ' | izrezati -d ' ' -f2 )
broji [ $index - 1 ] = ' ${items[$i]} $((broji+1) )'
biti
učinjeno

za računati u ' ${counts[@]} '
čini
jeka $count
učinjeno

Prvo inicijalizira niz pod nazivom 'items' s popisom nizova. Zatim deklarira prazan niz koji se zove 'counts'. For petlja se stvara za ponavljanje za svaku stavku u nizu 'items' i za svaku stavku provjerava postoji li već u nizu 'counts'.

Ako ne postoji, dodaje stavku i broj 1 u polje 'counts'. Ako postoji, povećava broj te stavke u nizu 'counts'. Konačno, za ispis svake stavke i njenog odgovarajućeg brojanja koristi se još jedna for petlja. Izlaz ovog koda ispisat će broj svake stavke u polju 'items', pri čemu se duplikati broje zasebno.

Ažuriranje popisa u Bashu

Ako imate popis stavki i želite dodati ili izbrisati stavke s njega, tada možete koristiti indeksni niz za to, a evo primjera za demonstraciju:

#!/bin/bash
stavke = ( 'Mango' 'Ananas' 'Jagoda' 'Trešnja' 'Grožđe' )

# Dodavanje novog elementa u indeksirano polje na indeksu 2
stavke [ 6 ] = 'naranča'
# Brisanje elementa na indeksu 2 iz indeksiranog niza
nepostavljeno stavke [ 2 ]

# Ispis ažuriranog niza
jeka ' ${items[@]} '

U skripti je definiran indeksirani niz “items” s pet početnih elemenata. Za dodavanje novog elementa, vrijednost se jednostavno dodjeljuje željenom indeksu pomoću sintakse array[index]=value. U ovoj skripti, 'narančasto' se dodaje indeksu 6 niza. Za brisanje elementa koristimo naredbu unset nakon koje slijedi indeks elementa koji želimo ukloniti. U ovom slučaju, element pod indeksom 2 ('Jagoda') se briše. Ažurirani niz se zatim ispisuje pomoću sintakse “${array[@]}”, koja proširuje cijeli niz.

Zaključak

Indeksirani nizovi zgodna su struktura basha koja vam omogućuje pohranjivanje i manipuliranje više vrijednosti pomoću jedne varijable. Razumijevanjem sintakse i upotrebe indeksiranih nizova možete pisati učinkovitije i učinkovitije bash skripte.