Como efetuar substituição de valores em arquivos de uma determinada extensão

image_pdfimage_print

As funcionalidades e comandos disponíveis no shell são incríveis e tem uma combinação praticamente ilimitadas para criação de verdadeiros programas.

Já falamos anteriormente sobre o find e o também sobre o sed, que individualmente já são um canivete suiço. Também já citamos por alto como utilizar os dois conjuntamente. Eles se tornam ainda mais poderosos quando utilizados em conjunto, como no exemplo que vamos dar.

Imagine que é necessário alterar em todos os arquivos de um tipo de extensão o texto //@todo por // @todo. Neste caso, iremos alterar em todos os arquivos javascript do sistema, para evitar um problema que acontece em um versão antiga do Internet Explorer que interpretará o //@todo de forma diversa de um comentário.

Então, para isto, utilizando o find e o sed, teremos:

find .  -name '*.js' -type f -exec sed -i 's/\/\/@todo/\/\/ @todo/' {} \;

E alterando o comando acima, é possível fazer alteração de textos em todos os arquivos de um determinado tipo facilmente.

find -name -type f (verifica somente arquivo). No caso do sed, a substituição está acontecendo como ‘s//

Alterando os parametros acima apresentados, é muito tranquilo utilizar o mesmo comando acima para vários outros propósitos. Bom uso e muita imaginação!

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!