【发布时间】:2013-09-15 19:38:09
【问题描述】:
我正在尝试从如下所示的 HTML 输出中获取数据:
<strong>Target1NoSpaces</strong><span class="creator"> ....
<strong>Target2 With Spaces</strong><span class="creator"> ....
我正在使用管道系统将数据减少到我想要达到的目标。到目前为止,这是我的方法:
grep "/strong" output.html | awk '{print $1}'
“/strong”上的Grep 以获取带有目标的行;效果很好。
管道到 'awk '{print $1}'。这适用于目标没有空格的情况#1,但在目标有空格的情况下#2失败..只有第一个单词被保留如下:
<strong>Target1NoSpaces</strong><span
<strong>Target2
在我的 awk 或其他命令中,你有什么正确击中目标的提示吗?任何快速而肮脏的东西(grep、awk、sed、perl)都将不胜感激。
【问题讨论】:
-
您正在尝试做的是“屏幕抓取”。我认为迟早你会需要比“'强'之间的文字”更笼统的东西。由于您在标签中添加了“Perl”,我鼓励您查看WWW::Mechanize。否则,请看这里:Linux - grep regex to pull out a string between two known strings。
标签: perl sed awk grep command-line-interface