Jak používat příkaz readarray ke čtení 2D pole v Bash

Jak Pouzivat Prikaz Readarray Ke Cteni 2d Pole V Bash



Bash je populární skriptovací jazyk shell používaný v operačních systémech Linux a Unix. Poskytuje bohatou sadu příkazů a funkcí, které usnadňují automatizaci opakujících se úloh. ‚readarray‘ je jedním z nejužitečnějších příkazů v Bash. Pomocí tohoto příkazu lze číst řádky ze souboru do 2D pole. V tomto příspěvku si projdeme, jak číst řádky ze souboru do 2D pole pomocí Bashova příkazu „readarray“.

Použití „readarray“ v Bash

Příkaz „readarray“ čte řádky ze souboru nebo standardního vstupu a přiřazuje je k poli. Syntaxe pro použití „readarray“ je následující:







readarray [ -d SDÍLET ] [ -n POČET ] [ - PŮVOD ] [ -s POČET ] [ -t ] pole


Možnosti dostupné pro příkaz „readarray“ jsou:



'-d SDÍLET': Nastaví oddělovač, který se má použít při rozdělování řádků na prvky pole a ve výchozím nastavení je oddělovačem znak nového řádku.



'-n COUNT': Určuje maximální počet řádků pro čtení do pole.





'-O ORIGIN' : Nastaví počáteční index pole.

„-s COUNT“: Určuje počet řádků, které se mají před čtením do pole přeskočit.



'-t': Odebere koncový znak nového řádku z každého řádku načteného do pole.

Zde je příklad použití „readarray“ ke čtení řádků ze souboru do 2D pole a pro to jsem vytvořil testfile.txt jehož obsahem je:

1 2 3
4 5 6
7 8 9


Zde je tedy kompletní bash skript, který demonstruje použití příkazu „readarray“:

#!/bin/bash
# Číst řádky ze souboru do pole
readarray -t linky < testfile.txt
# Deklarujte 2D pole se 3 řádky a 3 sloupci
prohlásit -A pole
# Iterujte po řádcích a rozdělte každý řádek na prvky
pro i v ' ${!lines[@]} ' ; dělat
IFS = ' ' číst -r -A Prvky <<< ' ${lines[i]} '
pro j v ' ${!elements[@]} ' ; dělat
-li [ [ -n ' ${elements[j]} ' ] ] ; pak
pole [ $i , $ j ] = ${elements[j]}
být
Hotovo
Hotovo
# Vytiskněte pole
pro ( ( i = 0 ;i < 3 ;i++ ) ) ; dělat
pro ( ( j = 0 j < 3 j++ ) ) ; dělat
echo -n ' ${array[$i,$j]} '
Hotovo
echo
Hotovo


Zde jsem nejprve deklaroval 2D pole nazvané ‚array‘ a poté použil příkaz ‚readarray‘ k načtení řádků ze souboru nazvaného ‚testfile.txt‘ do pole ‚lines‘. Dále kód iteruje pole „lines“ a rozdělí každý řádek na prvky pomocí příkazů „IFS“ a „read“.

Poté uloží prvky do 2D pole ‚pole‘ a poté pomocí příkazu read rozdělí každý řádek na prvky. Nyní je každý prvek přiřazen k odpovídajícímu prvku v poli ‚array‘ a nakonec se vytiskne obsah pole ‚array‘ pomocí vnořených smyček for.

Závěr

Příkaz „readarray“ usnadňuje manipulaci s velkým množstvím dat ve skriptech Bash. Podle příkladů uvedených v tomto článku můžete začít používat „readarray“ ve svých vlastních Bash skriptech ke čtení řádků ze souborů a jejich zpracování do 2D polí.