You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BASH中删除文本文件所有HTML标签的方法及sed命令问题咨询

解决sed仅删除每行第一个HTML标签的问题

嘿,这个问题我太熟了!你说得完全没错——问题确实出在sed替换命令的默认行为上,本质和正则表达式的写法关联紧密。

默认情况下,sed的s/正则/替换内容/命令只会替换每行中第一个匹配到的内容,这就是为什么你的命令只能删掉每行第一个HTML标签。要实现全局替换,只需要给替换命令加上g(global,全局)标志就行。

修改后的可用命令:

cat my_file | sed 's/<[^>]*>//g'

简单拆解说明:

  • g 标志:这是关键!它告诉sed要替换当前行内所有匹配到的<[^>]*>模式,而不是只处理第一个匹配项。
  • 关于你命令里的&lt;和&gt;:这是HTML转义字符,在终端直接执行sed命令时,用实际的<和>就可以,不需要转义哦。

额外小提示:

如果你的HTML标签存在跨行的情况(比如一个标签被拆分成了两行),这个单行sed命令就不太够用了。不过如果所有标签都在单行内,上面的命令完全能满足需求。

内容的提问来源于stack exchange,提问作者pyzololo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:52:47