Как я могу удалить комментарии в HTML с помощью sed? - PullRequest
0 голосов
/ 07 марта 2020

например, у меня есть этот html код

<h3>Title</h3>
<!--comment-->
<!-- comment -->
<!--
comment
-->
<h2>Title2</h2>

и с помощью sed мне нужно получить это

<h3>Title</h3>
<h2>Title</h2>

Я нашел здесь некоторые команды, но они не работа для меня

sed '/<!--.*-->/d'

не удаляет это

<!--
comment
-->

1 Ответ

2 голосов
/ 07 марта 2020

С действительным HTML / XML:

xmlstarlet ed -d '//comment()' file.html

Если вы хотите редактировать файл на месте, добавьте опцию -L.

Если ваш HTML недействителен, попробуйте это :

xmlstarlet format --recover --html file.html | xmlstarlet ed -d '//comment()'

С xml:

xmlstarlet format --recover file.xml | xmlstarlet ed -d '//comment()'

Чтобы пропустить xml объявление в выводе, добавьте --omit-decl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...