Сохранение результата кошки в виде разных значений индекса

Я проанализировал файл, используя cat и теперь я хочу сохранить его результат в массиве.

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

и var1 выглядит

 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. Я хочу, чтобы каждое значение сохранялось как переменные массива, но когда я делаю это, весь результат « cat хранится в индексе 0 из var1

Как сохранить каждое значение в качестве другого индекса?

  • Как я могу отобразить содержимое текстового файла в командной строке?
  • Можно ли сделать текст вывода zcat, даже если он несжатый?
  • «Some_program <some_file» быстрее, чем «cat some_file»; some_program?
  • (cp для cat AS mv для?) mv несколько файлов в один файл вместо cat * rm *
  • В сценарии Cat in expect добавлена ​​новая строка до конца строки
  • Как я могу читать строки за строкой из переменной в bash?
  • bash - добавить пустую строку в heredoc через переменную
  • Как я могу разбивать страницы UTF-8 и видеть правильные символы?
  • One Solution collect form web for “Сохранение результата кошки в виде разных значений индекса”

    В bash встроенный readarray может хранить значения в массивах:

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

    Это создаст массив с именем arr с значениями, указанными командой grep "pattern" abc.txt (если они входят в несколько строк, readarray добавляет их в массив):

     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 ... cat file | grep ... может быть сокращен до grep ... file , grep также может читать файлы.

    Linux и Unix - лучшая ОС в мире.