Me gustaría reemplazar todas las ocurrencias de la cadena de texto
subdomainA.example.com
por la siguiente otra cadena:
subdomainB.example.com
Me gustaría hacer este reemplazo de forma recursiva para todos los archivos de texto que se encuentren en el directorio /home/www/
.
Estás leyendo una traducción autorizada de la pregunta
Awk/Sed: How to do a recursive find/replace of a string?
planteada por Tedd
en StackOverflow.
Respuestas
Este es el comando que debes ejecutar:
$ cd /home/www $ find . -type f -print0 | xargs -0 sed -i 's/subdomainA.example.com/subdomainB.example.com/g'
La opción -print0
hace que el comando find
utilice el carácter \0
en vez del espacio en blanco como delimitador de los nombres de archivo que contengan espacios. Esto es mucho más seguro cuando se encadena el comando find
con el comando xargs
.
@librosweb
4 octubre 2014, 22:29