Substituindo texto entre duas strings específicas

Substituindo texto entre duas strings específicas

Eu tenho um grande número de arquivos que possuem um valor css obsoleto "hspace" e quero alterá-lo com outro valor de estilo css. Aqui está um exemplo: temos:

hspace='5'

e queremos mudar com:

style="margin: 0 5px;"

cada arquivo tem um valor diferente dentro de hspace, um pode ser hspace='5'outro hspace='2'e hspace='7'assim por diante.

o que eu quero é encontrar todos os arquivos em um diretório específico:

hspace='ANY NUMBER'

e substitua por:

style="margin: 0 5px;"

Alguma sugestão para fazer isso no bash centos os?

Responder1

Você pode usar este comando para substituir (assumindo o GNU sedencontrado no CentOS):

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

Para substituir em todos os arquivos .html:

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

informação relacionada