来自wget的grep html文件

时间:2012-04-20 19:55:17

标签: html grep wget

我使用wget下载scholar.google.com中与给定查询匹配的论文数量 我获得了一个显示该页面所有内容的文件。

我想检索文件以下部分的最后一个数字 “结果1 - 10约8,890。”

我试过了:

 cat /dir/file | tr -d "," | grep -o -E -- 'about ([^"]+) \w+'

但输出:

 about <b>8890</b>.   (<b>0.12</b> sec)&nbsp;</font></td></tr></table></form>    <div class

而我只想要8890(没有逗号由tr -d照顾“,”

有关如何改进它的任何建议? 提前谢谢!

3 个答案:

答案 0 :(得分:3)

Grep拔出正确的线 - 在此之后使用sed切掉你不想要的东西。

 cat /dir/file | tr -d "," | grep -o -E -- 'about ([^"]+) \w+' |sed -e 's/.*about <b>//' -e 's/<.b>.*//' 

答案 1 :(得分:0)

尝试类似:sed -n 's#.*about <b>\([0-9]*\)</b>.*#\1#p'而不是grep

-n表示不打印默认输入行,s标记p表示替换时打印。

答案 2 :(得分:0)

如果您的文件中存在html标记(<b></b>),则必须修改正则表达式以便处理它们。要获得您感兴趣的片段,请使用lookbehind断言。这是应该工作的东西: cat /dir/file | tr -d "," | grep -oP -- '(?<=about <b>)[^/<> ]+'