SED删除链接以外的所有HTML标记

时间:2013-01-17 06:47:12

标签: bash sed

我想删除所有的html标签,但请留下 例如。 <a href="http://www.domain.com/">Link Title</a>

到目前为止,这对我有用,只是它删除了</a>部分。

sed -e 's/<[^">]*>//g'

我想知道是否有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:4)

基本上你写的内容会删除<Stuff>Stuff没有任何双引号的<a href='http://www.domain.com/'>Link Title</a> 块。例如,如果有一个完全有效的html,如:

<a href=http://www.domain.com/>Link Title</a>

甚至是一些奇怪的HTML:

sed -e 's/<[^a>/!][^ >][^>]*>//g;s/<\/[^a>][^>]*>//g'

它对你不起作用。

正则表达式被认为是处理HTML的一种非常糟糕的方法,除非您确切知道可以处理的各种变体。

首先阅读this viewpoint

我可以提出类似的建议:

{{1}}