Necesitamos reemplazar una cadena de texto en todos los ficheros de todo un directorio y subdirectorios
Para reemplazar lo mejor es utilizar sed, como sed por defecto solo reemplaza pero lo muestra en pantalla no los guarda debemos utilizar la opción -i
sed -i “s/cadena1/cadena2/g” fichero
Dado que nuestra cadena tiene caracteres del tipo / o “, debemos indicarle que se trata de un carácter de la cadena, esto se hace anteponiendo \ al carácter. Por ej: \”
Con esto ya podemos reemplazar la cadena en un fichero
Para hacerlo recursivo debemos utilizar find
find /var/www/vhosts/prueba/ -name “*.php” -print | xargs sed -i “s/cadena1/cadena2/g”
Esto reemplaza la cadena indicada en todos los ficheros .php de la carpeta /var/www/vhosts/prueba/
Por ejemplo si lo que queremos es cambiar una ruta dentro de todos los ficheros php:
find /var/www/vhosts/prueba/ -name “*.php” -print | xargs sed -i “s/\/etc\/php.ini/\/etc\/php\/php.ini/g”
Comentarios recientes