多重查找和替换 HTML 代码

多重查找和替换 HTML 代码

我有多个 html 文件中的 URL 错误,需要查找并替换。

目前我的页面显示:

src="//https:

我需要查找并替换所有:

src="https:

有人知道在 Linux 上执行此操作的方法吗?

答案1

搜索replace multiple files [linux]找到了几个答案,但我不太在意。过多地使用了cat,ls 来获取文件名列表等。所以我会发布一个更清晰的答案。

如果它们都在同一个目录中,我会使用如下小脚本:

#!/bin/bash
mkdir newdir
for i in *.html
do
    sed 's!src="//https:!src="https:!g' < "$i" > "newdir/$i"
done

现在,更正后的文件将全部位于 中newdir。请注意,非 html 文件不会被复制过来,因此请小心。使用diff -r来比较并检查结果。

如果您的目录结构更复杂,最简单的方法是在每个目录中运行脚本。如果您只有几个目录,只需手动执行即可。如果您有很多目录,则需要使用另一个脚本来遍历树并调用此脚本。我不会在这里讨论这个;如果您需要它,请发布另一个问题。

编辑:您也可以-i像 Jakuje 的回答中那样使用就地替换。我自己更喜欢更谨慎的方法。

答案2

这个 sed 命令应该可以做到这一点:

sed -i -e 's/src="\/\/https:/src="https:/g' your_file

简单测试:

$ echo 'some text src="//https: some more text' | \
  sed -e 's/src="\/\/https:/src="https:/g'
some text src="https: some more text

相关内容