Armazenando o resultado de cat como valores de índice diferentes

3

Eu analisei um arquivo usando cat e agora quero salvar o resultado no array.

var1=$(cat abc.txt | grep .........)

e o var1 parece

33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

1.Quero que cada valor seja armazenado como variáveis de matriz, mas quando faço isso, todo o resultado de ' cat ' é armazenado no índice 0 de var1

Como salvar cada valor como um índice diferente?

    
por Umar 20.10.2015 / 08:33

1 resposta

3

No bash, o readarray builtin pode armazenar os valores nas matrizes:

readarray arr < <(grep "pattern" abc.txt)

Isso criará uma matriz chamada arr com os valores fornecidos pelo comando grep "pattern" abc.txt (se eles vierem em várias linhas, readarray os anexará à matriz):

echo ${arr[0]}
33
$ echo ${arr[10]}
12
$ echo ${arr[*]}
33 23 51 11 16 43 5 50 4 2 12 29 32 28 47 41 7 20 38 45 49 26 22 10 44 9 19 27 46

BTW: cat file | grep ... pode ser reduzido para grep ... file , grep também pode ler arquivos.

    
por 20.10.2015 / 08:50

Tags