Чтение строк из текстового файла и сохранение его в массиве - PullRequest
0 голосов
/ 12 октября 2019

Поэтому мне нужно прочитать все строки из текстового файла (в качестве аргумента, когда я вызываю скрипт), который содержит числа в этой форме (1 новая строка, а не 2):
num1: num2

num3: num4 и т. д.

Я использую этот командный блок:

while IFS= read line 
do
    IFS=':' read -r -a X <<< "$line" 
done < "$1"

, чтобы прочитать строки и числа и сохранить их в массиве X, но массив перемещается только в позиции 0 и 1 и когдаон меняет строку, просто пишет новое число (например, num3), где было старое число (например, num1 в позиции 0)

Есть ли какое-либо решение для этого?

1 Ответ

1 голос
/ 12 октября 2019

с баш. Замените все : на разрыв строки и используйте mapfile для заполнения массива x.

mapfile -t x < <(tr ':' '\n' < file)
declare -p x

Вывод:

declare -a x='([0]="num1" [1]="num2" [2]="num3" [3]="num4")'

См .: help mapfile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...