jq - 查询列表输出的 jq 语法帮助
问题描述
我需要帮助来纠正 jq 测试用例语法。以下是输出文件并尝试使用以下命令测试 ID 列表。为字符串类型提供错误索引。
[[ $(echo $output| jq -r '.output.value[] | select(.identity).id_list') == *"id2"* ]]
output = {
"resource_output": {
"value": {
"identity": [
{
"id_list": [
"/subscriptions/---/id1",
"/subscriptions/---/id2",
"/subscriptions/--/id3"
],
"principal_id": "",
"tenant_id": "",
"type": "managed"
}
]
}
}
解决方案
您的查询与示例 JSON 不匹配,并且您没有指出您期望的输出,但是您的查询的以下变体说明了如何按照您的尝试建议的行使用select
和test
处理您的数据:
echo "$output" |
jq -r '.resource_output.identity[].id_list[] | select(test("id2"))'
输出:
/subscriptions/---/id2
推荐阅读
- node.js - 如何使用 fetch() 将 GraphQL 查询发送到 GraphQLJS
- node.js - 为什么要在 node.js 中使用环境变量?
- node.js - 在某些情况下,EJS 只是输出第一个找到的用户
- scala - 为什么以及如何将案例类迁移到 Scala 中的提取器
- python - PyCharm 无法加载 TensorFlow 运行时
- c# - 修改代码以获得从牛市到熊市周期平稳趋势的合成数据
- excel - 我的宏出现越界错误
- python - 将修改后的数据发送到 DRF API 中的序列化程序
- entity-framework-core - 带有接口的脚手架 EF Core 实体
- r - spark_apply 错误指定列名