Se você tiver muitos mais padrões de pesquisa, poderá salvá-los em um arquivo e ler as substituições a partir dele. Por exemplo, digamos que estes sejam os conteúdos de replacements.txt
:
www\.abcdef www.test.abcdef
www\.klmnop www.test.klmnop
Você pode então ler uma lista de N substituições e substituí-las por:
while read from to; do
sed -i "s/$from/$to/" infile.txt ;
done < replacements.txt
NOTAS:
- Isso pressupõe que as strings de pesquisa não contenham espaços e que quaisquer caracteres estranhos precisem ser escapados em
replacements.txt
.
- Ele executará um
sed
por substituição, o que poderá demorar um pouco se você tiver muitas operações de substituição.
- Ele pode lidar com um número arbitrário de substituições (milhares ou milhões ou qualquer outra coisa), desde que você não se importe que leve um pouco mais de tempo.
Outra opção seria escrever o acima como um script 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;
Você pode então executar o script no seu arquivo e ele fará todas as substituições de uma só vez:
sed -f replace.sed infile.txt