【发布时间】:2014-06-04 09:28:40
【问题描述】:
我有一个 BASH 变量,其中包含一些 HTML 标记,例如:
word="<b><div class="light">apple</div></b><i>This is some text.</i>"
我需要删除所有 HTML,基本上是每对 < 和 > 之间的所有内容,只留下内容,例如,结果将是:
appleThis is some text.
我尝试了许多可能的解决方案:
word="$(sed 's#<.*>##g' <<< $word)"
word="$(awk '/<html>/{f=1;next} !f; /<\/html>/{f=0}' <<< $word)"
奇怪的是,这似乎删除了所有文本。
- 注意,有时 HTML 标签可能没有结束标签,但无论是否找到一对标签,都应该删除所有标签。
如何从 BASH 变量中删除所有 HTML 标记?
【问题讨论】:
-
使用 XML 解析器。
xmlstarlet,也许吧?
标签: html bash variables awk sed