sed 's/\(.*\)/-o \1:1/' file.txt | xargs /path/to/command
Замена sed
читается как :заменить текст в данной строке на "-o исходный _текст _:1". Затем команда xargs
берет эти измененные строки текста и объединяет их в соответствии с аргументами командной строки
%files
может прочитать список имен файлов из файла, созданного в процессе установки, если у вас есть нужные вам переменные. Например
%install
echo /$MPI_BIN/somefile >>myfilelist
, а затем используйте
%files -f myfilelist
Переменная $MPI_LIB
имеет область действия только в секции %install
. Вы можете попробовать макросы:
%install
MPI_LIB=some_value
%global mpi_lib $MPI_LIB
%files
/usr/lib64/%{mpi_lib}
Но это не удается, потому что определение макросов оценивается в самом начале анализа файла спецификации.Поэтому еще до запуска раздела %install
.
Я бы использовал это:
%global mpi_lib %(echo -n "mpich3")
%files
/usr/lib64/%{mpi_lib}
Конструкция %( )
запустит содержимое как сценарий оболочки, а выходные данные будут использоваться в качестве значения макроса.