热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用Shell脚本高效提取JSON数组中的最大值元素

使用 jq,我从数据源中提取了一个 json 数组,如下所示:[ { "rank": 69, "name": "Luigi" }, { "rank": 420, "nam

使用 jq,我从数据源中提取了一个 json 数组,如下所示:

[
{
"rank": 69,
"name": "Luigi"
},
{
"rank": 420,
"name": "Peach"
},
{
"rank": 666,
"name": "Toad"
},
{
"rank": 42,
"name": "Mario"
}
]

是否有一种优雅的方法可以在 shell 脚本中提取数组中字段的最大值?在这个例子中,我试图得到“666”。我可以编写一个专门的程序来轻松地做到这一点,但我更愿意留在单个 shell 脚本中,除非这样做太难看。我在 Ubuntu Docker 容器的上下文中,可以根据需要安装其他软件包。

回答

使用jq,您可以使用max_by功能:

max_by(.rank) 将产生:

{
"rank": 666,
"name": "Toad"
}

然后可以通过管道传输结果以从中提取rank:(max_by(.rank)|.rank给出666)。通过在终端前面加上jq– 来运行此查询jq 'max_by(.rank)|.rank'






推荐阅读
author-avatar
陈先森的记忆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有