Ako používať príkaz readarray na čítanie 2D poľa v Bash

Ako Pouzivat Prikaz Readarray Na Citanie 2d Pola V Bash



Bash je populárny skriptovací jazyk shell používaný v operačných systémoch Linux a Unix. Poskytuje bohatú sadu príkazov a funkcií, ktoré uľahčujú automatizáciu opakujúcich sa úloh. „Readarray“ je jedným z najužitočnejších príkazov v Bash. Pomocou tohto príkazu je možné čítať riadky zo súboru do 2D poľa. V tomto príspevku si prejdeme, ako čítať riadky zo súboru do 2D poľa pomocou Bashovho príkazu „readarray“.

Použitie „readarray“ v Bash

Príkaz „readarray“ načíta riadky zo súboru alebo štandardného vstupu a priradí ich do poľa. Syntax pre použitie „readarray“ je nasledovná:







readarray [ -d ZDIEĽAŤ ] [ -n POČÍTAŤ ] [ - PÔVOD ] [ -s COUNT ] [ -t ] pole


Možnosti dostupné pre príkaz „readarray“ sú:



'-d ZDIEĽAŤ': Nastavuje oddeľovač, ktorý sa má použiť pri rozdeľovaní riadkov na prvky poľa, pričom oddeľovačom je predvolene znak nového riadku.



„-n COUNT“: Určuje maximálny počet riadkov na čítanie do poľa.





'-O ORIGIN' : Nastaví počiatočný index poľa.

„-s COUNT“: Určuje počet riadkov, ktoré sa majú preskočiť pred čítaním do poľa.



„-t“: Odstráni koncový znak nového riadku z každého riadku načítaného do poľa.

Tu je príklad použitia „readarray“ na čítanie riadkov zo súboru do 2D poľa a na to som vytvoril testfile.txt ktorých obsahom je:

1 2 3
4 5 6
7 8 9


Takže tu je úplný bash skript, ktorý demonštruje použitie príkazu „readarray“:

#!/bin/bash
# Prečítajte si riadky zo súboru do poľa
readarray -t linky < testfile.txt
# Deklarujte 2D pole s 3 riadkami a 3 stĺpcami
vyhlásiť -A pole
# Iterujte cez riadky a rozdeľte každý riadok na prvky
pre i v ' ${!lines[@]} ' ; robiť
IFS = ' ' čítať -r -a prvkov <<< ' ${lines[i]} '
pre j v ' ${!elements[@]} ' ; robiť
ak [ [ -n ' ${elements[j]} ' ] ] ; potom
pole [ $i , $ j ] = ${elements[j]}
byť
hotový
hotový
# Vytlačte pole
pre ( ( i = 0 ;i < 3 ;i++ ) ) ; robiť
pre ( ( j = 0 j < 3 j++ ) ) ; robiť
ozvena -n ' ${array[$i,$j]} '
hotový
ozvena
hotový


Tu som najprv deklaroval 2D pole s názvom „pole“ a potom som použil príkaz „readarray“ na čítanie riadkov zo súboru s názvom „testfile.txt“ do poľa „lines“. Potom kód iteruje pole „lines“ a rozdelí každý riadok na prvky pomocou príkazov „IFS“ a „read“.

Potom uloží prvky do 2D poľa „pole“ a potom pomocou príkazu read rozdelí každý riadok na prvky. Teraz je každý prvok priradený k zodpovedajúcemu prvku v poli „pole“ a nakoniec sa vytlačí obsah poľa „pole“ pomocou vnorených slučiek for.

Záver

Príkaz „readarray“ uľahčuje manipuláciu s veľkým množstvom údajov v skriptoch Bash. Podľa príkladov uvedených v tomto článku môžete začať používať „readarray“ vo svojich vlastných skriptoch Bash na čítanie riadkov zo súborov a ich spracovanie do 2D polí.