使用sed提取HTML标记数据

时间:2010-08-27 23:35:54

标签: html sed tags

我希望在已知的HTML标记之间提取数据。例如:

Hello, <i>I<i> am <i>very</i> glad to meet you.

应该成为:

'I

very'

所以我找到了适合几乎这样做的东西。不幸的是,它只提取最后一个条目。

sed -n -e 's/.*<i>\(.*\)<\/i>.*/\1/p'

现在我可以使用换行符添加任何结束标记</i>,这样可以正常工作。但有没有办法只用一个sed命令来做到这一点?

3 个答案:

答案 0 :(得分:3)

尝试一下:

sed -n 's|[^<]*<i>\([^<]*\)</i>[^<]*|\1\n|gp'

您的示例缺少“/”:

Hello, <i>I</i> am <i>very</i> glad to meet you.

答案 1 :(得分:2)

试试这个:

$ sed 's/<[^>]*>//g' file.html

答案 2 :(得分:0)

$ awk -vFS="<.[^>]*>" '{for(i=2;i<=NF;i+=2)print $i}' file
I
very