Existe alguma maneira simples de alterar uma linha em muitos arquivos?

1

Estou tentando usar o PHP CodeSniffer, e aqui está o resultado:

-----------------------------------------------------------------
A TOTAL OF 3008 ERROR(S) AND 380 WARNING(S) WERE FOUND IN 46 FILE(S)
-----------------------------------------------------------------

Há muitas pequenas alterações em uma linha (por exemplo: alterar @author Olivier Pons para @author Olivier Pons <[email protected]> ) que gostaria de fazer por meio de um shell script, ou melhor, por meio de uma linha de comando e (se possível ) usando expressão regular.

Você tem alguma idéia / sugestão / solução de trabalho para esse problema?

Obrigado!

(Nota: eu já li isso mas isso não me ajudou)

    
por Olivier Pons 16.04.2012 / 16:26

2 respostas

7

Não sei ao certo o que não ajudou você no link fornecido, mas sed parece ser a ferramenta certa para isso. Suporta substituições de expressões regulares e, se você passar -i , alterará os arquivos no local:

$ sed -i 's/@author Olivier Pons/& <[email protected]>/g' /path/to/your/file /path/to/another/file ...

(O & na substituição é uma abreviação que significa "incluir a correspondência inteira")

    
por 16.04.2012 / 16:31
0

Eu acho que você poderia usar sed.

Por exemplo.

sed -i "s/@author Olivier Pons/@author Olivier Pons <[email protected]>/g" 'grep "@author Olivier Pons" -rl YOUR_FILE_DIR'
    
por 16.04.2012 / 16:33