Jak używać polecenia readarray do odczytu tablicy 2D w Bash

Jak Uzywac Polecenia Readarray Do Odczytu Tablicy 2d W Bash



Bash to popularny język skryptowy powłoki używany w systemach operacyjnych Linux i Unix. Zapewnia bogaty zestaw poleceń i funkcji, które ułatwiają automatyzację powtarzalnych zadań. „Readarray” to jedno z najbardziej pomocnych poleceń w Bash. Za pomocą tego polecenia linie z pliku można wczytać do tablicy 2D. W tym poście omówimy, jak wczytać linie z pliku do tablicy 2D za pomocą polecenia „readarray” Bash.

Używanie „readarray” w Bash

Polecenie „readarray” wczytuje wiersze z pliku lub ze standardowego wejścia i przypisuje je do tablicy. Składnia użycia funkcji „readarray” jest następująca:







czytać tablicę [ -d UDOSTĘPNIJ ] [ -n LICZ ] [ - POCHODZENIE ] [ -s LICZBA ] [ -T ] szyk


Opcje dostępne dla polecenia „readarray” to:



'-d UDOSTĘPNIJ': Ustawia separator używany podczas dzielenia wierszy na elementy tablicy i domyślnie separatorem jest znak nowej linii.



„-n LICZBA”: Określa maksymalną liczbę wierszy do wczytania do tablicy.





„-O POCHODZENIE” : Ustawia początkowy indeks tablicy.

„-s LICZBA”: Określa liczbę wierszy do pominięcia przed wczytaniem do tablicy.



'-T': Usuwa końcowy znak nowej linii z każdego wiersza wczytanego do tablicy.

Oto przykład użycia funkcji „readarray” do wczytania linii z pliku do tablicy 2D i w tym celu stworzyłem plik testowy.txt którego treść to:

1 2 3
4 5 6
7 8 9


Oto kompletny skrypt bash, który demonstruje użycie polecenia „readarray”:

#!/bin/bash
# Wczytaj wiersze z pliku do tablicy
czytać tablicę -T linie < plik testowy.txt
# Zadeklaruj tablicę 2D z 3 wierszami i 3 kolumnami
ogłosić -A szyk
# Iteruj po liniach i podziel każdą linię na elementy
Do I W ' ${!linie[@]} ' ; Do
IFS = '' Czytać -R -A elementy <<< ' ${wiersze[i]} '
Do J W ' ${!elementy[@]} ' ; Do
Jeśli [ [ -N ' ${elementy[j]} ' ] ] ; Następnie
szyk [ $i , $j ] = ${elementy[j]}
Być
zrobione
zrobione
# Wydrukuj tablicę
Do ( ( I = 0 ;I < 3 ;i++ ) ) ; Do
Do ( ( J = 0 ;J < 3 ;j++ ) ) ; Do
Echo -N ' ${tablica[$i,$j]} '
zrobione
Echo
zrobione


Tutaj najpierw zadeklarowałem tablicę 2D o nazwie „tablica”, a następnie użyłem polecenia „readarray”, aby wczytać wiersze z pliku o nazwie „testfile.txt” do tablicy „lines”. Następnie kod iteruje po tablicy „lines” i dzieli każdą linię na elementy za pomocą poleceń „IFS” i „read”.

Następnie przechowuje elementy w „tablicy” tablicy 2D, a następnie używa polecenia odczytu, aby podzielić każdą linię na elementy. Teraz każdy element jest przypisywany do odpowiedniego elementu w tablicy „tablica”, a na koniec wypisywana jest zawartość tablicy „tablica” przy użyciu zagnieżdżonych pętli for.

Wniosek

Polecenie „readarray” ułatwia manipulowanie dużymi ilościami danych w skryptach Bash. Postępując zgodnie z przykładami podanymi w tym artykule, możesz zacząć używać „readarray” we własnych skryptach Bash do odczytywania linii z plików i przetwarzania ich w tablice 2D.