如何使用 sed 删除 html 注释标签?

如何使用 sed 删除 html 注释标签?

我想删除 html 文件中的注释标签。

<!--- <script save and execute me> -->

必须成为:

<script save and execute me>

我试过

sed -i s_^<!-- \(.*\) -->$_\1_ text.sed

但这样做会失败,因为 < 和 > 被视为读入/读出字符。我尝试了:

sed -i 's_^<!-- \(.*\) -->$_\1_' text.sed

但 \1 并未按应有的方式进行评估。希望这里有人有想法吗?

答案1

给定一个文件 test.html,包含:

<html>
<!--- <script save and execute me> -->
</html>

命令:

sed -e "s/<!---* *<\(.*\)> *-->/<\1>/" test.html

发出:

<html>
<script save and execute me>
</html>

请注意这也会改变:

<html>
<!-- some info explaining why we have commented out the following -->
<!-- <hr> -->
<!--- <script save and execute me> -->
</html>

进入:

<html>
<!-- some info explaining why we have commented out the following -->
<hr>
<script save and execute me>
</html>

相关内容