Substituir una palabra que aparece en múltiples ficheros.

Substituir una palabra que aparece en múltiples ficheros.

En alguna ocasión, (sobre todo trabajando en páginas webs), he tenido que cambiar por ejemplo, un link o la llamada a un script, y esta aparece en todas las páginas php existentes.

     La mejor manera, es la siguiente, buscar en que ficheros aparece dicha palabra, y una vez localizarla, pasarla como argumento a algún programa que me haga la substitución.

     Esto es:

# grep -rl 'palabra_a_buscar' ./ | xargs sed -i\'s/palabra_a_buscar/laquelasubstituye/g'

Nada más fácil para realizar, pero tenemos que ir con mucho cuidado, si la palabra a substituir puede estar contenida en otras palabras, piensa en un ejemplo como:

...su abrigo era de ante, aunque anteriormente a su viaje, lo había hecho restaurar por el peletero.

Subtituir ante por piel:

...su abrigo era de piel, aunque pielriormente a su viaje, lo había hecho restaurar por el peletero

Aunque os parezca a todas luces lógico, a veces, al intentar substituir links complejos, pasa más a menudo de lo que uno piensa.

     Espero os sea de ayuda.