Readarray-komennon käyttäminen 2D-taulukon lukemiseen Bashissa

Readarray Komennon Kayttaminen 2d Taulukon Lukemiseen Bashissa



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 3
4 5 6
7 8 9


Joten tässä on täydellinen bash-skripti, joka osoittaa 'readarray'-komennon käytön:

#!/bin/bash
# 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.