从python脚本的html输出中提取特定标记

时间:2014-05-22 09:34:09

标签: bash awk sed grep cut

我有一个应该使用grep命令管道的程序,我的程序的输出是这样的:

<cite>www.site.com/sdds/ass</cite>A-"><div Class="sa_mc"><div class="sb_tlst"><h3><a href=

依旧......

我运行了一个python脚本:

./python.py | grep -Po '(?<=<cite>)([^</cite>])'

为了点击cite标签之间的所有内容...

你能帮助我吗?

2 个答案:

答案 0 :(得分:1)

你需要正确使用环视功能,你的外观很好,但前瞻不是。试试这个:

grep -Po "(?<=<cite>).*?(?=</cite>)"

例如:

 echo '<cite>www.site.com/sdds/ass</cite>A-"><div Class="sa_mc"><div class="sb_tlst"><h3><a href=' | grep -Po "(?<=<cite>).*?(?=</cite>)"
 www.site.com/sdds/ass

免责声明:使用正则表达式解析XML / HTML是一种不好的做法。您应该使用像xmllint这样的解析器。

答案 1 :(得分:1)

您也可以使用sed。但是使用正则表达式解析XML / HTML是一种不好的做法。

 sed -r 's/^<cite>([^<]*)<\/cite>.*/\1/g' file

输出:

www.site.com/sdds/ass