Мне нужно посчитать количество объектов в каждой группе с помощью 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 самых последних записей.
И после этого мне потребуетсяподсчитывать количество объектов в группе каким-либо образом.
В целом, похоже, мне нужно чрезвычайно интуитивное объяснение того, как массивы и списки объектов преобразуются друг в друга, и как изменить некоторые из их полей иПосле этого для извлечения требуются только поля.Учебники, которые я нашел, к сожалению, не помогли.