Прочитать цитируемые элементы массива с пробелами из файла?

Обновление до более нового Fedora версии является хорошей идеей. Однако, если необходимо придерживаться Fedora 16, необходимо смочь загрузить valgrind-3.8.1-9.fc18.src.rpm на машину Fedora 16 и использование

rpmbuild --rebuild valgrind-3.8.1-9.fc18.src.rpm

Создать valgrind 3.8.1 rpms для Fedora 16. Затем можно использовать их для обновления версии valgrind.

4
21.10.2015, 23:00
2 ответа

Я не могу придумать очень хороший способ сделать то, о чем вы просите, но.., если вы знаете, что ваш входной файл будет содержать разделенные пробелами лексемы, которые являются допустимым синтаксисом для bash, тогда что-то вроде

declare -a arr="($(<myfile))"
3
27.01.2020, 20:49

Используйте это:

IFS=$'\n' arr=( $(xargs -n1 <file) )
  • IFS=$'\n' устанавливает внутренний разделитель полей bashs на новую строку.
  • arr=( ... ) определение массива.
  • xargs -n1 xargs читает файл с максимум 1 аргументом. Строки в кавычках остаются вместе, потому что они читаются как аргументы.

Вывод (один элемент в строке):

$ printf "%s\n" "${arr[@]}"
a
bc
d e
f
5
27.01.2020, 20:49

Теги

Похожие вопросы