是否有任何聪明的方法可以使用 jq
从每个主要节点版本获取最新版本?或者我是否必须编写另一个包装器 shell 脚本来处理其输出?
我想要获取的(主要有三个版本:v8、v9和v10)最新版本:
v10.1.0
v9.11.1
v8.11.2
发布列表:
$ export repo='nodejs/node'
$ curl -s https://api.github.com/repos/${repo}/tags |jq -r ".[].name"
v10.1.0
v10.0.0
v9.11.1
v9.11.0
v9.10.1
v9.10.0
v9.9.0
v9.8.0
v9.7.1
v9.7.0
v9.6.1
v9.6.0
v9.5.0
v9.4.0
v9.3.0
v9.2.1
v9.2.0
v9.1.0
v9.0.0
v8.11.2
v8.11.1
v8.11.0
v8.10.0
v8.9.4
v8.9.3
v8.9.2
v8.9.1
v8.9.0
v8.8.1
v8.8.0
最佳答案
您可以通过管道传输到此 awk 命令:
awk -F. '!major[$1]++'
它使用句点作为字段分隔符,并打印从未见过第一个字段的每一行,这是主要版本。
如果输入未排序并且您有 GNU 排序,则可以使用其版本排序:
sort -rV | awk -F. '!major[$1]++'
其中 -V
表示“版本排序”,-r
表示“反向”。
关于json - 使用 jq 从每个主要节点版本获取最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440891/