Linux – Script para modificar multiples ficheros usando un bucle for y sed

Algunas veces nos encontramos con que tenemos que hacer la misma modificación en múltiples ficheros.

Por ejemplo hemos puesto una ruta mal en todos nuestros ficheros .html y tenemos que hacer la misma modificación en todos. Esto podría significar modificar 10, 100 ficheros.

Veamos como podemos ahorrarnos todo este trabajo.

Para el ejemplo vamos a usar un caso muy simple: en todos los ficheros .html hemos puesto la ruta mal.

En los ficheros .html tenemos:
src=Images/nuevo-flash_15.gif
y tendriamos que tener:
src=images/nuevo-flash_15.gifEs decir la primera “i” de images en minusculas.

El script es el siguiente:

for i in *.html
do sed s/Images/images/g $i > $i.bak
mv $i.bak $i
done

En primer lugar con el bucle for, recorremos todos los ficheros .html y con el comando sed hacemos la modificación que queremos para cada uno de los ficheros.

El comando sed es una herramienta muy potente ya que nos permite hacer multitud de de operaciones sobre ficheros de forma desatendida, ej: en un script.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.