Reemplazo de texto entre dos cadenas específicas

Reemplazo de texto entre dos cadenas específicas

Tengo una gran cantidad de archivos que tienen un valor CSS obsoleto "hspace" y quiero cambiarlo con otro valor de estilo CSS. Aquí hay un ejemplo: tenemos:

hspace='5'

y queremos cambiar con:

style="margin: 0 5px;"

Cada archivo tiene un valor diferente en su interior hspace, uno puede ser hspace='5'otro hspace='2', hspace='7'y así sucesivamente.

lo que quiero es buscar en todos los archivos en un directorio específico:

hspace='ANY NUMBER'

y reemplazar con:

style="margin: 0 5px;"

¿Alguna sugerencia para hacer esto en bash centos os?

Respuesta1

Puede usar este comando para reemplazar (asumiendo sedque GNU se encuentra en CentOS):

sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" filename.html

Para reemplazar en todos los archivos .html:

find . -type f -name '*.html' -exec sed -i "s/hspace='\([0-9]*\)'/style=\"margin: 0 \1px;\"/g" {} +

información relacionada