Якщо у вас є багато більше шаблонів пошуку, ви можете зберегти їх у файлі та прочитати звідти заміни. Наприклад, скажіть, що це вміст 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