我正在使用 jq 1.6 来获取对象中的最后一个条目。它应该像这样工作:
data='{ "1": { "a": "1" }, "2": { "a": "2" }, "3": { "a": "3" } }'
result=`echo $data | jq 'myfilter'`
echo $result
{ "3": { "a": "3" } }
Run Code Online (Sandbox Code Playgroud)
我尝试过这些过滤器:
jq '. | last' # error: Cannot index object with number
我如何告诉 jq 引用该数字?
jq '. | to_entries | last' # { "key": "3", "value": { "a": "3" } }
我想我可以通过连接键和值条目来解决这个问题。有没有更简单的方法?
教程和手册没有帮助。所以也没有什么乐趣。
您可以使用以下内容:
jq 'to_entries | [last] | from_entries'
Run Code Online (Sandbox Code Playgroud)
我们不能使用with_entries(last),因为last返回单个元素并from_entries需要一个数组,因此是[...]上面的构造。