Замена текста между двумя определенными строками

Замена текста между двумя определенными строками

У меня есть большое количество файлов, которые имеют устаревшее значение css "hspace", и я хочу изменить его на другое значение стиля css. Вот пример: у нас есть:

hspace='5'

и мы хотим изменить это с помощью:

style="margin: 0 5px;"

каждый файл имеет внутри разное значение hspace, одно может быть hspace='5'другим hspace='2'и hspace='7'т. д.

Я хочу найти все файлы в определенном каталоге:

hspace='ANY NUMBER'

и замените на:

style="margin: 0 5px;"

Есть ли предложения, как это сделать в bash centos os?

решение1

Для замены можно использовать следующую команду (предполагается, sedчто GNU используется в CentOS):

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

Для замены во всех .html-файлах:

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

Связанный контент