【发布时间】:2019-12-16 01:10:31
【问题描述】:
我有一个 JSON 文件,我正在使用 jq 从中提取数据。一个简单的用例是提取任何包含作为参数提供的 Id 的 JSON 对象。
我使用以下简单脚本来执行此操作:
[.[] | select(.id == $ID)]
脚本存储在一个单独的文件 (by_id.jq) 中,我使用 -f 参数传入该文件。
完整的命令如下所示:
cat ./my_json_file.json | jq -sf --arg ID "8df993c1-57d5-46b3-a8a3-d95066934e5b" ./by_id.jq
有没有办法只使用 jq 以逗号分隔的值列表作为参数传递给 jq 脚本并遍历 id 并根据 JSON 文件中 .id 的值检查它们结果是具有该 id 的对象?
例如,如果我想通过它们的 id 拉出三个对象,我想以这种方式构造命令:
cat ./my_json_file.json | jq -sf --arg ID "8df993c1-57d5-46b3-a8a3-d95066934e5b,1d5441ca-5758-474d-a9fc-40d0f68aa538,23cc618a-8ad4-4141-bc1c-0251y0663963" ./by_id.jq
【问题讨论】: