使用 any() 检查 JQ 中是否存在某个键
Use any() to check if certain key exists in JQ
我想使用 jq 检查关键字是否作为键存在于任何级别的 JSON 中。这是我想出的:
jq -c 'paths | select(.[-1]) as $p| index("headline") //empty' news.json
输出是一个数组:
[
6,
7,
9
]
我想将输出数组映射到 jq 函数 any()
并得到一个整体结果,如果键存在则为真,否则为假。
如何使用 jq 完成该操作?
提供any
一个迭代器和一个条件
jq 'any(paths; .[-1] == "headline")'
您还可以提供 -e
(或 --exit-status
)选项,如果结果为 true
,则退出状态为 0
,而 1
如果结果是 false
,可以立即用于 shell.
中的进一步处理
jq -e 'any(paths; .[-1] == "headline")'
你不需要中间数组。
any(paths[-1]; . == "headline")
我想使用 jq 检查关键字是否作为键存在于任何级别的 JSON 中。这是我想出的:
jq -c 'paths | select(.[-1]) as $p| index("headline") //empty' news.json
输出是一个数组:
[
6,
7,
9
]
我想将输出数组映射到 jq 函数 any()
并得到一个整体结果,如果键存在则为真,否则为假。
如何使用 jq 完成该操作?
提供any
一个迭代器和一个条件
jq 'any(paths; .[-1] == "headline")'
您还可以提供 -e
(或 --exit-status
)选项,如果结果为 true
,则退出状态为 0
,而 1
如果结果是 false
,可以立即用于 shell.
jq -e 'any(paths; .[-1] == "headline")'
你不需要中间数组。
any(paths[-1]; . == "headline")