Edición masiva recursiva en Linux
Pregunta
Estoy tratando de cambiar ciertas líneas en varios archivos (dispersos en subcarpetas) sin tener que editar cada archivo uno por uno. Me dieron por Chas. la siguiente
perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' *
y funcionó como un encanto, pero se preguntaba si este comando o similares se pueden hacer de forma recursiva en una sola toma
Solución
find . -type f -exec perl -pi.bak -e 's{[^/]Css/Template.css}{/Css/Template.css}' '{}' '+'
Esto se aplicará a todos los archivos en el directorio actual y todos los subdirectorios. No va a seguir enlaces simbólicos. Es posible que desee limitar el alcance del hallazgo con una directiva -nombre también.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow