Создайте скрипт sed
, который выполняет все подстановки, а затем примените этот скрипт sed
к вашему файлу.
for (( i=0; i<${#OLD[@]}; ++i )); do
printf 's/%s/%s/g\n' "${OLD[$i]}" "${NEW[$i]}"
done >script.sed
sed -f script.sed inputfile >outputfile && mv outptufile inputfile && rm script.sed
Таким образом, вы ограничиваете количество раз, которое вам нужно разобрать входной файл, до одного.
Для заданных данных в OLD
и NEW
скрипт sed
будет сгенерирован как
s/_MAIN1_/#111/g
s/_MAIN2_/#222/g