【发布时间】:2010-04-25 04:14:29
【问题描述】:
我想在命令行上使用 curl 来获取一个 url,将它传递给一个模式,并返回一个与该模式匹配的 url 列表。
我在模式的贪婪方面遇到了问题,似乎无法克服它。对此的任何帮助将不胜感激。
curl http://www.reddit.com/r/pics/ | grep -ioE "http://imgur\.com/.+(jpg|jpeg|gif|png)"
所以,从 url 中获取数据,它返回一堆 html,可能需要以某种方式替换一些换行符,除非正则表达式可以在一行中返回多个模式。模式很简单,任何匹配的字符串...
- 以http://imgur.com/开头
- 有 A-Z a-z 0-9(可能还有其他一些),到目前为止,5 个字符长,如果我想限制模式的那个方面,8 应该永远覆盖它,我不这样做
- 以 .grraphic_file_format_extention(jpg、jpeg、gif、png)结尾
就是这样,在那个 url,使用默认设置,我通常应该得到一组好的图像。我不会反对在同一页面上使用 RSS 感觉 url,实际上它可能更容易解析。
谢谢大家!
编辑 感谢您的快速回答,我现在的最终命令是:
$curl -s http://www.reddit.com/r/pics/ | grep -ioE "http:\/\/imgur\.com\/.{1,10}\.(jpg|jpeg|gif|png)"
【问题讨论】:
-
您愿意使用真正的 XML 库吗? reddit.com/r/pics/.rss 不是很有效的 RSS,但它是格式良好的 XML。
-
我有点想只“单线”这个。它只是一个我想不时运行的命令,我将把它包装在一个 bash for 循环中,然后删除一个大约 10 张图片的目录。