我的输入,命令和第一个(部分)结果:
"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 ...”,但是我对如何使用它一无所知。
有人可以给我提示或告诉我可行的解决方案并告诉我它如何工作吗?
谢谢!
答案 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"]
其余的作为练习:-)