Если у вас есть еще много шаблонов поиска, вы можете сохранить их в файле и прочитать оттуда замены. Например, допустим, что это содержимое файла replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
Затем вы можете прочитать список N замен и заменить их следующим:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
ЗАМЕТКИ:
- Это предполагает, что ваши строки поиска не содержат пробелов и любые странные символы должны быть экранированы в
replacements.txt
.
- Он будет запускать один
sed
на замену, что может занять некоторое время, если у вас много операций по замене.
- Он может иметь дело с произвольным числом замен (тысячи или миллионы или что-то еще), если вы не возражаете, что это займет немного больше времени.
Другим вариантом будет написать выше, как сценарий sed
:
s/www\.abcdef/www\.test\.abcdef/g;
s/www\.kmlnop/www\.test\.klmnop/g;
s/aaaa/bbbb/g;
s/cccc/dddd/g;
s/eeee/ffff/g;
Затем вы можете запустить скрипт для вашего файла, и он сделает все замены за один раз:
sed -f replace.sed infile.txt