我有以下结构:
{"ID":"XX","guid":1}
{"ID":"YY","guid":2}
...
我尝试过运行:
jq 'sort_by(.guid)' conn.json
但是我收到一个错误:
Cannot index string with string "guid"
请您告诉我如何按 guid 对文件进行排序和/或找到 guid 最大的记录?
UPDATE
我实际上要寻找的是数据集中 GUID 最大的记录。认为排序会对我有帮助,但事实证明它非常慢
Thanks
sort_by
假设它的输入是可迭代的,并通过应用来扩展它.[]
在对其成员进行排序之前。您向其提供一个对象流,每个对象都会扩展为一个不可索引值的流("XX", 1
等)在这种情况下,因此.guid
fails.
吸食它们以使其发挥作用,例如:
jq -s 'sort_by(.guid)[]' conn.json
要提取具有最大 GUID 的对象,您不需要手动对提取的输入进行排序;对于此类任务,jq 有max_by
, e.g:
jq -s 'max_by(.guid)' conn.json
and reduce
,对于大输入来说这是一种更方便的构造,并且消除了吸食的需要。
jq 'reduce inputs as $in (input; if $in.guid > .guid then $in else . end)' conn.json
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)