![替换两个特定字符串之间的文本](https://linux22.com/image/109133/%E6%9B%BF%E6%8D%A2%E4%B8%A4%E4%B8%AA%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B9%8B%E9%97%B4%E7%9A%84%E6%96%87%E6%9C%AC.png)
我有大量文件具有已弃用的 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" {} +