JQ重用结果

时间:2018-07-11 12:02:14

标签: arrays json variables iteration jq

我的输入,命令和第一个(部分)结果:

"b", "c", "i"
"b", "c", "j'
"b", "d", "k"
"e", "f", "l"
"e", "f", "m"
"e", "f", "n"
"e", "g", "o"

我想遍历结果的(“ b”,“ e”)数组([“ c”,“ d”]和[“ f”,“ g”])并重用该查询的结果搜索我树的第二部分(“ h”部分),迭代结果数组并显示结果。

所以我的完整结果如下:

the best possible way to do this

捕获是,由于最终解决方案中的资源/时间限制,我想在单个查询中执行此操作。

我尝试了很多事情,例如“键为$ k ...”,但是我对如何使用它一无所知。

有人可以给我提示或告诉我可行的解决方案并告诉我它如何工作吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先考虑此过滤器:

(.a | keys_unsorted[]) as $k1
| (.a |.[$k1][]) as $k2
| (.h |.[$k2][]) as $k3
| [$k1, $k2, $k3]

使用您的数据,调用:

jq -c -f filter.jq input.json

产生:

["b","c","i"]
["b","c","j"]
["b","d","k"]
["e","f","l"]
["e","f","m"]
["e","f","n"]
["e","g","o"]

其余的作为练习:-)