Linux: como inserir ou alterar texto em vários arquivos simultaneamente
Se você alguma vez já teve que editar uma série de arquivos para remover, inserir ou alterar algum texto, sabe como isso pode ser desesperador.
No desenvolvimento do site de relacionamentos Cupido.com.br, fizemos uma interface “genérica”, nada deveria ficar no código fonte, apenas nos templates. Mas sempre sobra alguma coisa. E foi justamente com o nome do site. Assim, para aproveitar o mesmo sistema em portais “irmãos”, eu tive que caçar e alterar o nome por mais de uma centena de arquivos de templates. A solução? O bom e velho perl.
Veja o comando:
perl -p -i -e “s/Cupido.com.br/__portal_name__/g” *.html
Explicação dos comandos:
-p -> assume um loop (o mesmo que -n no sed)
-i -> edita os arquivos (realiza a operação no arquivo e não apenas na saída)
-e -> executa a linha de programação
também poderia utilizar o sed
sed ‘s/Cupido.com.br/__portal_name__/g’ *.html
Nos dois casos, todos os arquivos com a extensão html encontrados no diretório serão alterados.
Não se esqueça de fazer um backup antes de executar o comando. Sacomé, melhor prevenir…





