【发布时间】:2017-06-27 14:46:02
【问题描述】:
我目前正在研究使用 jq 处理包含整数列表的 JSON 文件,例如下面的示例 —
[
{
"box_id": 1,
"number_items": [
4,
6,
7,
5
]
},
{
"box_id": 3,
"number_items": [
15,
null,
15,
9
]
},
{
"box_id": 6,
"number_items": [
2,
4,
0,
1
]
}
]
首先,我试图获得每个box_id 的最大值。仅获得最大值相对简单,例如jq '.[].number_items | max,返回
7
15
4
但是,我想将它存储到一个新的 JSON 文件中,就像这样 —
[
{
"box_id": 1,
"max_items": 7
},
{
"box_id": 3,
"max_items": 15
},
{
"box_id": 6,
"max_items": 4
}
]
另一部分涉及更多——如何找到每个box_id的列表中连续条目的绝对差之和?例如,考虑[4,6,7,5],它对应于差异[6-4=2, 7-6=1, 5-7=-2] = [2,1,-2]。该绝对值之和为2+1+2 = 5。请注意,列表可以包含null 值。应该删除这些条目,以便在[15,null,15,9] 的情况下,我们得到[15,15,9],它对应于差异[0,-6] 和绝对和6。
【问题讨论】:
-
显示最终结果,包括绝对值