Existe alguma maneira simples de alterar uma linha em vários arquivos?

Existe alguma maneira simples de alterar uma linha em vários arquivos?

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 Ponspara ) que eu gostaria de fazer por meio de um script de shell ou, melhor ainda, por meio de uma linha de comando e (se possível) usando expressão regular.@author Olivier Pons <[email protected]>

Você tem alguma ideia/sugestão/solução funcional para este problema?

Obrigado!

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

Responder1

Não tenho certeza do que não ajudou no link fornecido, mas sedparece ser a ferramenta certa para isso. Ele suporta substituições de expressões regulares e, se você passá-lo, -ios arquivos serão alterados 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")

Responder2

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`

informação relacionada