从curl的输出中提取模式

时间:2010-04-25 04:14:30

标签: regex curl

我想在命令行上使用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)

关于它,在那个网址,默认设置,我通常应该回到一组好的图像。对于同一页面使用RSS感知网址我不会反感,实际解析可能更容易。

谢谢大家!

编辑 谢谢你的快速回答,我的最后命令是:

$curl -s http://www.reddit.com/r/pics/ | grep -ioE "http:\/\/imgur\.com\/.{1,10}\.(jpg|jpeg|gif|png)"

2 个答案:

答案 0 :(得分:2)

尝试:

http:\/\/imgur\.com\/.{5,8}\.(jpg|jpeg|gif|png)

答案 1 :(得分:0)

很酷。从URL提取您的WAN IP:

curl -s https://hostpapastatus.com/ip/ | grep -ioE "([0-9]{1,3}[\.]){3}[0-9]{1,3}"