【发布时间】:2021-10-02 06:54:28
【问题描述】:
我有一个包含这样记录的 json:
[
{"number":1},
{"number":3}
]
并希望选择(过滤)具有“数字”字段的最大值或最小值的记录。
我可以像这样得到“数字”的最小值或最大值:
$ echo '[{"number":1},{"number":3}]' | jq ' [ .[].number ] | min'
(发出 1 个)
我可以输出布尔值:
$ echo '[{"number":1},{"number":3}]' | jq '.[].number==([ .[].number ] | min)'
true
false
但是当我尝试将它与 select 放在一起时,它失败了:
$ echo '[{"number":1},{"number":3}]' | jq 'map(select(.[].number==([ .[].number ] | min)))'
jq: error (at <stdin>:1): Cannot index number with string "number"
我觉得我很接近,但卡住了。我做错了什么?
提前致谢!
【问题讨论】:
-
请改进措辞,使您更清楚您是否需要最小元素和/或所有最小元素。谢谢。