[Linux-only] Como substituir uma expressão em diversos ficheiros
Posted on December 29th, 2007 in Linux
Boas,
Para quem não sabe, para mim esta é uma altura de fazer projectos para a universidade. Calhou-me na rifa o projecto de programação.
No decorrer do projecto tive a necessidade de mudar MUITAS expressões em diversos ficheiros, quer para as tornar mais legíveis ou reduzi-las um pouco. Se o fosse fazer num editor normal nunca mais saia dali, com o agravante de me poder esquecer de editar um ficheiro e perdia precisos minutos a corrigir o erro.
Como tal fui ao Google e encontrei a solução.

perl -pi -w -e 's/search/replace/g;' *.c
-e executa a seguinte linha de código.
-i editar no local pretendido.
-w imprime os warnings
-p loop
(desculpem a tradução…)
Este simples comando em Perl poupou-me muito tempo, e acima de tudo é bastante simples!
Espero que seja útil a alguém
Abraços,
Pedro Diogo

3 Responses
Olha que andar a mudar os nomes das variáveis para não detectar cópia não vale a pena…
Ou então usas o sed, que é mais eficiente para estas coisas:
sed -i s/search/replace/g *.c
Sofia, Antes fosse! Escusava de ter o trabalhão todo que estou a ter neste momento se andasse a copiar
Carlos, Obrigado, já aprendi uma coisa nova. De facto é bem mais eficiente, e também mais fácil de decorar