【发布时间】:2019-03-01 01:01:42
【问题描述】:
我需要用 JQ 计算每个组中的对象数量,但只针对最近的 N 个对象。
样本输入,N=3:
{"modified":"Mon Sep 25 14:20:00 +0000 2018","object_id":1,"group_id":"C"}
{"modified":"Mon Sep 25 14:23:00 +0000 2018","object_id":2,"group_id":"A"}
{"modified":"Mon Sep 25 14:21:00 +0000 2018","object_id":3,"group_id":"B"}
{"modified":"Mon Sep 25 14:22:00 +0000 2018","object_id":4,"group_id":"A"}
预期输出:
{"A",2}
{"B",1}
我什至没有选择一个基于日期的子集来保留对象的结构:这是我设法实现的最好的结果:
[
.modified |= strptime("%a %b %d %H:%M:%S %z %Y") |
.modified |= mktime |
.modified |= strftime("%Y-%m-%d %H:%M:%S")
] |
sort_by(.modified) |
.[] |
{modified, object_id, group_id}
由于某种原因,结果仍未排序。
我也未能将此类列表转换为数组以仅选择 N 个最近的条目。
然后我需要以某种方式计算每组的对象数量。
总的来说,看起来我需要一个非常直观的解释,说明数组和对象列表如何相互转换,以及如何修改它们的一些字段,然后只提取所需的字段。不幸的是,到目前为止我发现的教程没有帮助。
【问题讨论】: