Como usar o comando readArray para ler 2D Array em Bash

Como usar o comando readArray para ler 2D Array em Bash

Bash é uma linguagem popular de script de shell usada nos sistemas operacionais Linux e Unix. Ele fornece um rico conjunto de comandos e recursos que facilitam a automação de tarefas repetitivas. O 'ReadArray' é um dos comandos mais úteis do Bash. Com este comando, as linhas de um arquivo podem ser lidas em uma matriz 2D. Neste post, examinaremos como ler linhas de um arquivo em uma matriz 2D usando o comando "readArray" de Bash.

Usando 'ReadArray' em Bash

O comando 'ReadArray' lê linhas de um arquivo ou entrada padrão e as atribui a uma matriz. A sintaxe para usar 'ReadArray' é a seguinte:

ReadArray [-d delim] [-n count] [-o origem] [-s count] [-t] Array


As opções disponíveis para o comando 'ReadArray' são:

'-d delim': Define o delimitador a ser usado ao dividir linhas em elementos de matriz e, por padrão, o delimitador é um personagem de nova linha.

'-n count': Especifica o número máximo de linhas para ler na matriz.

'-O origem': Define o índice inicial da matriz.

'-s contagem': Especifica o número de linhas para pular antes de ler a matriz.

'-t': Remove o personagem Newline à direita de cada linha lida na matriz.

Aqui está um exemplo de uso de 'ReadArray' para ler linhas de um arquivo em uma matriz 2D e para isso eu criei um TestFile.TXT cujos conteúdos são:

1 2 3
4 5 6
7 8 9


Então, aqui está o script completo do Bash que demonstra o uso do comando 'ReadArray':

#!/BIN/BASH
# Leia as linhas de um arquivo na matriz
ReadArray -t Linhas < testfile.txt
# Declare uma matriz 2D com 3 linhas e 3 colunas
declarar -uma matriz
# Iterar nas linhas e dividir cada linha em elementos
para i em "$ !linhas [@] "; faça
Ifs = "Leia -R -A Elementos <<< "$lines[i]"
para j em "$ !elementos [@] "; faça
se [[-n "$ elementos [j]"]]; então
Array [$ i, $ j] = $ elementos [j]
fi
feito
feito
# Imprima a matriz
para ((i = 0; i<3;i++)); do
para ((j = 0; j<3;j++)); do
echo -n "$ Array [$ i, $ j]"
feito
eco
feito


Aqui, primeiro, declarei uma matriz 2D chamada 'Array' e depois usei o comando 'ReadArray' para ler linhas de um arquivo chamado 'testFile.txt 'na matriz de' linhas '. Em seguida, o código itera a matriz 'linhas' e dividiu cada linha em elementos usando os comandos 'ifs' e 'read'.

Depois disso, ele armazena os elementos na matriz 2D 'Array' e depois usa o comando de leitura para dividir cada linha em elementos. Agora, cada elemento é atribuído ao elemento correspondente na matriz 'Array' e, finalmente.

Conclusão

O comando 'ReadArray' facilita a manipulação de grandes quantidades de dados em scripts de bash. Seguindo os exemplos fornecidos neste artigo, você pode começar a usar 'ReadArray' em seus próprios scripts bash para ler linhas de arquivos e processá -los em matrizes 2D.