Kako koristiti naredbu readarray za čitanje 2D polja u Bashu

Kako Koristiti Naredbu Readarray Za Citanje 2d Polja U Bashu



Bash je popularan skriptni jezik ljuske koji se koristi u operativnim sustavima Linux i Unix. Omogućuje bogat skup naredbi i značajki koje olakšavaju automatizaciju zadataka koji se ponavljaju. 'Readarray' jedna je od najkorisnijih naredbi u Bashu. Pomoću ove naredbe, linije iz datoteke mogu se pročitati u 2D polje. U ovom ćemo postu objasniti kako čitati retke iz datoteke u 2D niz pomoću Bashove naredbe 'readarray'.

Korištenje 'readarray' u Bashu

Naredba 'readarray' čita retke iz datoteke ili standardnog unosa i dodjeljuje ih nizu. Sintaksa za korištenje 'readarray' je sljedeća:







readarray [ -d DIJELI ] [ -n BROJITI ] [ - PORIJEKLO ] [ -s BROJ ] [ -t ] niz


Opcije dostupne za naredbu 'readarray' su:



'-d PODIJELI': Postavlja razdjelnik koji će se koristiti prilikom dijeljenja redaka u elemente niza, a prema zadanim postavkama razdjelnik je znak novog retka.



'-n BROJ': Određuje najveći broj redaka za čitanje u polje.





'-O PORIJEKLO' : Postavlja početni indeks niza.

'-s BROJ': Određuje broj redaka koje treba preskočiti prije čitanja u polje.



'-t': Uklanja znak za novi red na kraju iz svakog retka pročitanog u nizu.

Evo primjera korištenja 'readarray' za čitanje redaka iz datoteke u 2D polje i za to sam stvorio testfile.txt čiji je sadržaj:

1 2 3
4 5 6
7 8 9


Dakle, ovdje je potpuna bash skripta koja demonstrira korištenje naredbe 'readarray':

#!/bin/bash
# Čitaj retke iz datoteke u polje
readarray -t linije < testfile.txt
# Deklarirajte 2D niz s 3 retka i 3 stupca
proglasiti -A niz
# Iterirajte preko redaka i podijelite svaki redak na elemente
za ja u ' ${!lines[@]} ' ; čini
IFS = ' ' čitati -r -a elementi <<< ' ${lines[i]} '
za j u ' ${!elements[@]} ' ; čini
ako [ [ -n ' ${elements[j]} ' ] ] ; zatim
niz [ $i , $j ] = ${elements[j]}
biti
učinjeno
učinjeno
# Ispiši niz
za ( ( ja = 0 ;i < 3 ;i++ ) ) ; čini
za ( ( j = 0 ;j < 3 ;j++ ) ) ; čini
jeka -n ' ${niz[$i,$j]} '
učinjeno
jeka
učinjeno


Ovdje sam prvo deklarirao 2D niz pod nazivom 'array', a zatim upotrijebio naredbu 'readarray' za čitanje redaka iz datoteke pod nazivom 'testfile.txt' u niz 'lines'. Zatim, kod iterira po nizu 'lines' i dijeli svaki redak na elemente pomoću naredbi 'IFS' i 'read'.

Nakon toga pohranjuje elemente u 2D polje 'niz' i zatim koristi naredbu za čitanje da podijeli svaki redak na elemente. Sada je svaki element dodijeljen odgovarajućem elementu u nizu 'niza' i na kraju se ispisuje sadržaj niza 'niza' pomoću ugniježđenih for petlji.

Zaključak

Naredba 'readarray' olakšava manipuliranje velikim količinama podataka u Bash skriptama. Slijedeći primjere navedene u ovom članku, možete početi koristiti 'readarray' u vlastitim Bash skriptama za čitanje redaka iz datoteka i njihovu obradu u 2D nizove.