Armazena a matriz para arquivar e carregar a matriz do arquivo no BASH [closed]

1

Eu quero poder armazenar vários arrays inteiros em um arquivo txt quando eu terminar de atualizá-los e, em seguida, conseguir carregar esses arrays do arquivo txt para o script que estou usando.

As matrizes basicamente contêm certas estatísticas e eu quero poder carregá-las e salvá-las para que atualizem as estatísticas após cada execução do script.

Existe alguma maneira de fazer isso em bash?

EDIT: para a resposta abaixo, como você escreveria os arrays no arquivo?

    
por layshal 07.08.2015 / 08:17

2 respostas

1

Suponha que tenhamos um arquivo com duas matrizes inteiras, uma por linha:

$ cat file
1 20 300
1 2 3 5

Podemos ler essas matrizes da seguinte forma:

{ read -a a1; read -a a2; } <file

Podemos verificar se foram lidos corretamente usando declare -p :

$ declare -p a1
declare -a a1='([0]="1" [1]="20" [2]="300")'
$ declare -p a2
declare -a a2='([0]="1" [1]="2" [2]="3" [3]="5")'

Salvando matrizes para arquivar

Uma forma de salvá-los no arquivo é:

$ { echo "${a1[*]}"; echo "${a2[*]}"; } >newfile

O arquivo resultante se parece com:

$ cat newfile
1 20 300
1 2 3 5
    
por 07.08.2015 / 08:22
0

Você pode escrever os arrays no arquivo com

printf "%s\n" "${a1[*]}" "${a2[*]}" > file

Isso é compatível com a resposta de John1024; coloca um array por linha.

    
por 07.08.2015 / 09:03

Tags