我有一个应该使用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
标签之间的所有内容...
你能帮助我吗?
答案 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