Что касается моих комментариев, я думаю, что логика предоставленного вами скрипта неверна - в частности, я не вижу, как sed может комбинировать 2 входных файла для каждой строки (я не думаю, что это работает так, как вы думаете оно делает)
Я придумал альтернативное решение для вас -
#! /bin/bash export IFS=$'\n' ( for LINE in `paste Temp/files.txt Temp/prefixedfiles.txt` do F1=`echo $LINE | cut -f1` F2=`echo $LINE | cut -f2` echo "ffmpeg -i $F1 -vcodec libx264 -acodec copy -threads 10 -crf 18 $F2" done ) > generatedscript3
Объяснение:
Строка IFS экспорта изменяет символ разделения файлов на символ новой строки - это означает, что пробелы в файлах будут правильно обрабатываться.
Волшебство происходит в цикле for LINE - команда «paste» объединяет 2 файла в один вывод с разделением табуляцией, который затем обрабатывается построчно.
F1 и F2 разделяют 2 части ввода на переменные, которые затем печатаются с использованием линии эха.
Весь этот вывод записывается в файл с именем generatescript3 (потому что цикл и эхо находятся в скобках)