sed 编辑文本块:不贪婪匹配

neu*_*ino 2 sed

我希望我可以使用 sed获取文件中的第一个html 注释。

使用'/<!--/,/-->/并拥有多个评论块,它也会匹配第一个和最后一个评论块之间的所有内容!

有什么建议吗?

这里有一个示例:

<!-- 

First comment block

-->

Content

<!--

Second comment block

-->
Run Code Online (Sandbox Code Playgroud)

预期的输出应该是:

<!-- 

First comment block

-->
Run Code Online (Sandbox Code Playgroud)

它也应该与单行注释一起使用。

<!-- First comment block -->
Run Code Online (Sandbox Code Playgroud)

Sté*_*las 5

你会做一些事情:

sed '/<!--/,$!d;/-->/q'
Run Code Online (Sandbox Code Playgroud)

第一个命令删除所有行,但从第一个匹配<!--开始。在没有被第一个命令删除的那些中,我们搜索结束标记并退出(在打印该行之后)。

使用 perl,去除注释标签:

perl -ln0777 -e 'print $1 if /<!--\s*(.*?)\s*-->/'
Run Code Online (Sandbox Code Playgroud)