【发布时间】:2023-03-18 13:44:01
【问题描述】:
例如我有这个 html 代码
<h3>Title</h3>
<!--comment-->
<!-- comment -->
<!--
comment
-->
<h2>Title2</h2>
我必须使用 sed 来获得这个
<h3>Title</h3>
<h2>Title</h2>
我在这里找到了一些命令,但它们对我不起作用
sed '/<!--.*-->/d'
不删除这个
<!--
comment
-->
【问题讨论】:
-
You can't parse [X]HTML with regex。我建议使用 XML/HTML 解析器(例如 xmlstarlet)。
-
如果只想输出Title所在的部分,可以使用grep。
grep Title foo.html,但我猜不仅仅是 grepping 涉及到 Tittle。 -
当您必须使用
sed(学校)时,将其添加到问题中(不仅仅是主题)。sed -z 's#<!--.*-->##'是否适用于您的示例?如果是这样,您有一个新的sed版本,我们可以寻找更好的命令。当<h2>之后出现评论时,此sed将删除<h2>行。 -
如果只有
sed可供您使用,并且仅适用于您的示例:sed '/<!--/,/-->/d' file