在所有文件中将 images\(.*)" 替换为 images/\1" 吗?

在所有文件中将 images\(.*)" 替换为 images/\1" 吗?

我有一堆 html 文件,所有 img 标签的斜杠都写错了!

这是一个例子(除了它只是代码中的一行,为了方便查看,这里将其拆分)

<a href=index.html><img src="images\homereg.png" /></a>
<img src="images\spacer.png" />
<a href=dogs.html><img src="images\dogsreg.png" /></a>
<img src="images\spacer.png" />
<a href=litters.html><img src="images\littersreg.png" /></a>
<img src="images\spacer.png" />
<a href=bredby.html><img src="images\bredbyreg.png" /></a>
<img src="images\spacer.png" />
<a href=contact.html><img src="images\contactreg.png" /></a>

到目前为止,我尝试过的方法中,我遇到的问题是 sed 过于贪婪,因此匹配过多,并且替换不当。类似sed -i 's|images\\\(.*\)\"|images/\1\"|g' *每行替换一个这样的方法,匹配过多。我尝试过其他方法,但都和这个方法一样。

最简单的解决方案是什么?我不仅限于 sed,我只是最了解它,所以这是我尝试过的。

答案1

检查这是否适合你

sed "s/images\\\/images\\//g"

答案2

不要使用正则表达式。只需将所有出现的 替换为images\即可images/

所有基本的文本编辑器都应该支持这一点。

如果你想使用sed

sed 's|images\\|images/|g' filename.html

相关内容