У меня есть массив путей к файлам, каждый из которых имеет несколько строк текста. Я хотел бы создать массив, который заполняется первой строкой каждого файла, обработанного следующим образом:
# this.txt first line is [Test this]
# another.txt first line is [Test another]
paths=(
./this/path/this.txt
./another/path/another.txt
)
for i in ${paths[@]}; do
read -r line < $i
lines+=$line
done
Самое большее, я получил только одно значение в моем массиве. Я не могу получить массив, который я ищу из цикла for. Я пробовал много вариантов, и мне было трудно понять, где я иду не так.
bash
shell-script
array
dimmech
источник
источник
В Bash вы также можете напрямую читать строки в массив. Если вы выбрали текущую длину массива
${#lines[@]}
в качестве индекса вставки, вы можете добавить к нему:Синопсис выдержка
источник