我被 jq 困在了下面的 json 中。下面的元素按某个时间戳降序排序(不包含在 json 中)。我需要在 id X 之前选择 id。在 id 1 之前选择 ids 应返回 2、3 和 5。
[
{
"id": 2,
"somekey": "somevalue"
},
{
"id": 3,
"somekey": "somevalue"
},
{
"id": 5,
"somekey": "somevalue"
},
{
"id": 1,
"somekey": "somevalue"
},
{
"id": 4,
"somekey": "somevalue"
}
]
知道如何用 jq 在一行中做到这一点吗?特别是“选择之前的元素”部分。
最佳答案
简短:
.[0: map(.id) | index(1)]
花哨但速度快:
label $top | .[] | if .id == 1 then break $top else . end
关于json - 使用 jq 选择第 n 个元素之前的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48036567/