如何使用Bash / sed?</script>在所有文件中递归查找/替换<script> HTML标记

时间:2013-12-05 02:57:11

标签: bash recursion replace sed

我必须在目录中的所有文件中递归地查找并替换“脚本”HTML标记,我想用bash命令和sed来完成。标签是

< script type="text/javascript" src="http://www.example.com/file.php">< /script>
你能帮帮我吗? 感谢

修改 的 有人告诉我,我没有说明我想要的替代品。实际上“替换”它不是正确的词,因为我只是想删除HTML标记,用空格或空字符替换它。

2 个答案:

答案 0 :(得分:0)

在sed中,您可以使用sed "s|pattern|replacement|g"将所有“模式”替换为“替换”

请提供预期的输出,以帮助其他人更好地了解您的要求

答案 1 :(得分:0)

根据相关信息,您似乎希望从给定目录中的许多HTML文件替换特定字符串。

您可以使用sed执行此操作的方法如下:

sed -i.rep 's/script/replacestring/g' *.html

请注意,-i选项将更改文件并创建一个名称相同的备份文件,扩展名为.rep,包含原始内容。如果您不想这样做,您可能希望迭代文件并执行sed并将结果写入临时文件。完成后,您可以检查它们并重命名它们。例如:

for i in *.html
do
  sed 's/script/replacestring/g' $i > rep$i
done

最后,您将拥有许多与替换文件相对应的rep * .html文件。

您可以按如下方式重命名/覆盖它们:

for i in rep*.html
do
  mv $i `echo $i|sed s/rep//`
done

上面的sed表达式会将rep文件重命名为原始名称,并将覆盖它们。