¿Existe alguna forma sencilla de cambiar una línea en muchos archivos?

¿Existe alguna forma sencilla de cambiar una línea en muchos archivos?

Estoy intentando usar PHP CodeSniffer y aquí está el resultado:

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

Hay muchos pequeños cambios en una línea (por ejemplo: cambiar @author Olivier Ponsa ) que me gustaría hacer mediante un script de shell, o incluso mejor, mediante una línea de comando y (si es posible) usando una expresión regular.@author Olivier Pons <[email protected]>

¿Tiene alguna idea/sugerencia/solución de trabajo para este problema?

¡Gracias!

(Nota: ya he leídoestepero no me ayudó)

Respuesta1

No estoy seguro de qué no te ayudó en el enlace que proporcionaste, pero sedparece la herramienta adecuada para esto. Admite reemplazos de expresiones regulares y, si lo pasa, -icambiará los archivos en el lugar:

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

( &En el reemplazo hay una abreviatura que significa "incluir todo el partido")

Respuesta2

Creo que podrías usar sed.

Por ejemplo.

sed -i "s/@author Olivier Pons/@author Olivier Pons <[email protected]>/g" `grep "@author Olivier Pons" -rl YOUR_FILE_DIR`

información relacionada