Kaip naudoti indeksų masyvus „Bash“.

Kaip Naudoti Indeksu Masyvus Bash



„Bash“ palaiko indeksuotus masyvus, kurie iš esmės yra elementų, kuriuos galima pasiekti naudojant jų indekso numerį, sąrašai. Indeksuoti masyvai ypač naudingi, kai norite saugoti ir valdyti daug susijusių reikšmių. Perskaitykite šį straipsnį, kad sužinotumėte, kaip naudoti indeksų masyvus.

Kas yra indeksų masyvai

Indeksuoti masyvai yra bash elementų rinkinys, kurį galima pasiekti naudojant indeksą arba raktą. Šie masyvai gali būti naudojami duomenims saugoti ir gauti tam tikra tvarka, todėl lengviau valdyti didelius duomenų kiekius. Indeksuoto masyvo paskelbimo bash sintaksė yra tokia:

< masyvo_pavadinimas > = ( elementas1 elementas2 elementas3... )

Čia masyvo_pavadinimas yra masyvo pavadinimas, o element1, element2, element3 ir tt yra reikšmės, kurios turi būti saugomos masyve. Reikšmės atskirtos tarpais ir atminkite, kad masyvui sukurti taip pat galite naudoti komandą deklaruoti.







Kaip naudoti indeksuotus masyvus „Bash“.

Norėdami sukurti indekso masyvą bash, jums tiesiog reikia deklaruoti kintamąjį ir priskirti jam reikšmes, esančias skliausteliuose ir atskirtas tarpais. Štai keli pavyzdžiai, rodantys, kaip naudoti indeksuotus masyvus programoje bash:



Sąrašo pertvarkymas Bash

Jei prekių sąrašas yra tam tikra tvarka ir norite jas pertvarkyti kitu būdu. Norėdami sukurti naują prekių užsakymą, galite naudoti indekso masyvą, kaip nurodyta toliau.



#!/bin/bash
daiktų = ( 'Mango' 'Ananasas' 'Braškė' 'Vyšnia' 'Vynuogės' )
įsakymas = ( 4 2 0 3 1 )
dėl i in ${užsakymas[@]}
daryti
aidas ${items[$i]}
padaryta

Šiame pavyzdyje sukuriame masyvą, vadinamą elementais su penkiais elementais. Taip pat sukuriame indeksų masyvą, vadinamą order, kuris nurodo naują prekių tvarką. Tada pereiname per užsakymų masyvą ir naudojame kiekvieną reikšmę kaip indeksą, kad gautume atitinkamą elementą iš prekių masyvo ir išspausdintume.





Sąrašo filtravimas Bash

Jei turite elementų sąrašą ir norite išfiltruoti tam tikrus elementus pagal sąlygą. Norėdami sekti sąlygą atitinkančių elementų indeksus, galite naudoti indeksų masyvą, kaip nurodyta toliau:



#!/bin/bash
daiktų = ( 'Mango' 'Ananasas' 'Braškė' 'Vyšnia' 'Vynuogės' )
indeksai = ( )

dėl i in ${!items[@]}
daryti
jeigu [ [ ${items[$i]} == * 'r' * ] ]
tada
indeksai+= ( $i )
būti
padaryta

dėl i in ${indexes[@]}
daryti
aidas ${items[$i]}
padaryta

Šiame pavyzdyje sukuriame masyvą, vadinamą elementais su penkiais elementais. Taip pat sukuriame tuščią indeksų masyvą, vadinamą indeksais. Tada peržiūrime elementų masyvą ir patikriname, ar kiekviename elemente yra raidė „r“. Jei taip, jo indeksą įtraukiame į indeksų masyvą. Galiausiai peržiūrime indeksų masyvą ir kiekvieną reikšmę naudojame kaip indeksą, kad gautume atitinkamą elementą iš elementų masyvo ir išspausdintume.

Įvykių skaičiavimas Bash

Jei turite elementų sąrašą ir norite suskaičiuoti kiekvieno elemento pasikartojimų skaičių, galite naudoti rodyklės masyvą, kad galėtumėte sekti skaičių, o čia yra demonstravimo pavyzdys:

#!/bin/bash
daiktų = ( 'Mango' 'Ananasas' 'Braškė' 'Vyšnia' 'Vynuogės' )
skaičiuoja = ( )

dėl i in ${!items[@]}
daryti
jeigu [ [ ! ${counts[@]} =~ ${items[$i]} ] ]
tada
skaičiuoja+= ( ${items[$i]} 1' )
Kitas
indeksas =$ ( aidas ${counts[@]} | tr '' '\n' | sukibimas -n '^ ${items[$i]} | su )
skaičiuoti =$ ( aidas ${counts[$index-1]} | supjaustyti -d '' -f2 )
skaičiuoja [ $indeksas - 1 ] = ${items[$i]} $((skaičius+1) )'
būti
padaryta

dėl skaičiuoti in ${counts[@]}
daryti
aidas $skaičiuoti
padaryta

Pirmiausia jis inicijuoja masyvą, vadinamą „elementais“, su eilučių sąrašu. Tada jis deklaruoja tuščią masyvą, vadinamą „skaičiais“. Sukuriamas ciklas, skirtas kartoti kiekvieną elementą „elementų“ masyve ir kiekvienam elementui patikrinama, ar jis jau yra „counts“ masyve.

Jei jo nėra, jis prideda elementą ir skaičių 1 prie „counts“ masyvo. Jei jis egzistuoja, jis padidina to elemento skaičių „counts“ masyve. Galiausiai, norint išspausdinti kiekvieną elementą ir atitinkamą skaičių, naudojamas kitas ciklas. Šio kodo išvestis išspausdins kiekvieno elemento skaičių „elementų“ masyve, o dublikatai bus skaičiuojami atskirai.

Sąrašo atnaujinimas Bash

Jei turite elementų sąrašą ir norite iš jo pridėti arba ištrinti elementus, galite naudoti indekso masyvą ir čia yra demonstravimo pavyzdys:

#!/bin/bash
daiktų = ( 'Mango' 'Ananasas' 'Braškė' 'Vyšnia' 'Vynuogės' )

# Naujo elemento įtraukimas į indeksuotą masyvą 2 indekse
daiktų [ 6 ] = 'oranžinė'
# 2 indekso elemento ištrynimas iš indeksuoto masyvo
nenustatyta daiktų [ 2 ]

# Atnaujinto masyvo spausdinimas
aidas ${items[@]}

Scenarijuje indeksuotas masyvo „elementai“ yra apibrėžtas penkiais pradiniais elementais. Norint pridėti naują elementą, reikšmė tiesiog priskiriama norimam indeksui naudojant sintaksės masyvą[index]=value. Šiame scenarijuje „oranžinė“ pridedama prie 6 masyvo indekso. Norėdami ištrinti elementą, naudojame komandą Unset, po kurios nurodoma elemento, kurį norime pašalinti, indeksas. Šiuo atveju 2 indekso elementas („Braškė“) ištrinamas. Tada atnaujintas masyvas išspausdinamas naudojant sintaksę „${array[@]}“, kuri išplečia visą masyvą.

Išvada

Indeksuoti masyvai yra patogi bash struktūra, leidžianti saugoti ir valdyti kelias reikšmes naudojant vieną kintamąjį. Suprasdami indeksuotų masyvų sintaksę ir naudojimą, galite rašyti efektyvesnius ir efektyvesnius bash scenarijus.