想在 PageSpeed Release Notes 中提取最新的版本号,自己想了一个很笨的,求一个更直接的

2016-10-01 16:08:51 +08:00
 70599

下面是我自己写的,怎样更简洁一些?

curl -sL https://developers.google.com/speed/pagespeed/module/release_notes | egrep -o "id=\"release_[0-9.]+" | egrep -o "[0-9.]+" | head -n 1
1947 次点击
所在节点    正则表达式
7 条回复
ldbC5uTBj11yaeh5
2016-10-01 16:12:59 +08:00
grep 这两句可以合成一个

curl -sL https://developers.google.com/speed/pagespeed/module/release_notes | grep -oP "id=\"release_\K[0-9.]+" | head -1
ldbC5uTBj11yaeh5
2016-10-01 16:18:10 +08:00
哦,看了下文档, grep -m 1 还可以省掉 head -1 这个命令了。
70599
2016-10-01 16:24:39 +08:00
感谢🙏
70599
2016-10-01 16:35:08 +08:00
因为狗发威阿里云上根本打不开 Release Notes 😂
wdlth
2016-10-01 17:39:58 +08:00
70599
2016-10-01 18:26:14 +08:00
@wdlth 没用过。请问怎样在 shell 里获取版本号?也是 curl 下来 grep 吗?

我现在用的是
```
curl -sL https://github.com/pagespeed/ngx_pagespeed/releases | grep -oP "tag-name\">v\K[0-9.]+" -m 1
```
wdlth
2016-10-01 22:14:34 +08:00
@70599 GitHub API 返回的是 JSON ,你可以用 python 或者其他工具进行解析。

比如用 Python 进行解析

curl -sL https://api.github.com/repos/pagespeed/mod_pagespeed/tags | python -c "import sys, json; print json.load(sys.stdin)[3]['name']"

一般来说应该是排在前面的,但 Google 放了几个没版本号的在前面,你也可以进行判断。
API 的格式相对是不变的,但网页的话可能会改版,也可能触发一些 WAF 防御规则,禁止非正常访问,看你自己选择。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310166

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX