替换两个特定字符串之间的文本

替换两个特定字符串之间的文本

我有大量文件具有已弃用的 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 操作系统中执行此操作吗?

答案1

您可以使用此命令进行替换(假设sed在 CentOS 上找到 GNU):

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" {} +

相关内容