Обновление до более нового 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.
Я не могу придумать очень хороший способ сделать то, о чем вы просите, но.., если вы знаете, что ваш входной файл будет содержать разделенные пробелами лексемы, которые являются допустимым синтаксисом для bash, тогда что-то вроде
declare -a arr="($(<myfile))"
Используйте это:
IFS=$'\n' arr=( $(xargs -n1 <file) )
IFS=$'\n'
устанавливает внутренний разделитель полей bashs на новую строку. arr=( ... )
определение массива. xargs -n1 xargs
читает файл
с максимум 1 аргументом. Строки в кавычках остаются вместе, потому что они читаются как аргументы.
Вывод (один элемент в строке):
$ printf "%s\n" "${arr[@]}"
a
bc
d e
f