Bash on suosittu komentosarjakieli, jota käytetään Linux- ja Unix-käyttöjärjestelmissä. Se tarjoaa runsaasti komentoja ja ominaisuuksia, jotka helpottavat toistuvien tehtävien automatisointia. 'Readarray' on yksi Bashin hyödyllisimmistä komennoista. Tällä komennolla tiedoston rivit voidaan lukea 2D-taulukkoon. Tässä viestissä käymme läpi kuinka lukea rivejä tiedostosta 2D-taulukkoon käyttämällä Bashin 'readarray' -komentoa.
'Readarray' käyttö Bashissa
'Readarray'-komento lukee rivit tiedostosta tai vakiosyötteestä ja määrittää ne taulukkoon. 'Readarray':n syntaksi on seuraava:
lukujärjestys [ -d JAA ] [ -n COUNT ] [ - ALKUPERÄ ] [ -s COUNT ] [ -t ] joukko
'Readarray'-komennon vaihtoehdot ovat:
'-d JAA': Asettaa erottimen käytettäväksi jaettaessa rivejä taulukon elementeiksi, ja oletusarvoisesti erotin on rivinvaihtomerkki.
'-n COUNT': Määrittää taulukkoon luettavien rivien enimmäismäärän.
'-O ORIGIN' : Asettaa taulukon aloitusindeksin.
'-s COUNT': Määrittää ohitettavien rivien määrän ennen taulukkoon lukemista.
'-t': Poistaa rivinvaihdon lopussa olevan rivin jokaiselta riviltä, joka luetaan taulukkoon.
Tässä on esimerkki 'readarray':n käyttämisestä rivien lukemiseen tiedostosta 2D-taulukkoon, ja tätä varten olen luonut testitiedosto.txt jonka sisältö on:
1 2 34 5 6
7 8 9
Joten tässä on täydellinen bash-skripti, joka osoittaa 'readarray'-komennon käytön:
# Lue rivit tiedostosta taulukkoon
lukujärjestys -t rivit < testitiedosto.txt
# Määritä 2D-taulukko, jossa on 3 riviä ja 3 saraketta
julistaa -A joukko
# Iteroi rivien yli ja jaa jokainen rivi elementeiksi
varten i sisään ' ${!lines[@]} ' ; tehdä
IFS = '' lukea -r -a elementtejä <<< ' ${lines[i]} '
varten j sisään ' ${!elements[@]} ' ; tehdä
jos [ [ -n ' ${elements[j]} ' ] ] ; sitten
joukko [ $i , $j ] = ${elements[j]}
olla
tehty
tehty
# Tulosta taulukko
varten ( ( i = 0 ;i < 3 ;i++ ) ) ; tehdä
varten ( ( j = 0 ;j < 3 ;j++ ) ) ; tehdä
kaiku -n ' ${array[$i,$j]} '
tehty
kaiku
tehty
Tässä olen ensin ilmoittanut 2D-taulukon nimeltä 'array' ja sitten käyttänyt 'readarray'-komentoa lukeakseni rivejä tiedostosta 'testfile.txt' 'linjat' -taulukkoon. Seuraavaksi koodi toistuu rivit-taulukon yli ja jakaa jokaisen rivin elementeiksi käyttämällä IFS- ja Read-komentoja.
Sen jälkeen se tallentaa elementit 2D-taulukkoon ja käyttää sitten lukukomentoa jokaisen rivin jakamiseen elementeiksi. Nyt jokainen elementti on kohdistettu vastaavaan elementtiin 'array' -taulukossa ja lopuksi tulostetaan 'array' -taulukon sisältö käyttämällä sisäkkäisiä silmukoita.
Johtopäätös
'Readarray'-komento helpottaa suurten tietomäärien käsittelyä Bash-skripteissä. Noudattamalla tässä artikkelissa annettuja esimerkkejä voit alkaa käyttää 'readarray'-toimintoa omissa Bash-skripteissäsi lukeaksesi rivejä tiedostoista ja käsitelläksesi ne 2D-taulukoiksi.