Almacenamiento del resultado de cat como valores de índice diferentes

He analizado un file usando cat y ahora quiero save el resultado en array.

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

y el 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.Quiero que cada valor se almacene como variables de matriz, pero cuando hago esto, todos los resultados de ' cat se almacenan en el índice 0 de var1

¿Cómo save cada valor como un índice diferente?

En bash, el readarray incorporado puede almacenar los valores en matrices:

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

Esto creará una matriz llamada arr con los valores dados por el command grep "pattern" abc.txt (si vienen en múltiples líneas, readarray agrega a la 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 

Por cierto: cat file | grep ... cat file | grep ... se puede acortar a grep ... file , grep también puede leer files.