Благодаря комментарию Rakesh Sharma я смог решить эту проблему, используя флаг -i
в команде sed. Перед циклом создается резервная копия исходного файла:
cp oldfile.txt oldfile.backup
while (( i < length ))
do
sed -i -e 's/'"${OLD[$i]}"'/'"${NEW[$i]}"'/g' oldfile.txt
((i++))
done
В следующий раз я буду использовать Perl для манипуляций со строками.
Изменить: Добавлено ((i++))
для предотвращения бесконечного цикла (благодаря комментарию Кусалананды).