标题说明了一切:jq 程序接受一个输入 JSON 文档,我对其结构只是模糊熟悉,并且我希望它打印其中具有特定名称的所有属性的路径。
假设您想要查找具有名为“b”的键的对象的路径。一种方法是使用路径(对象),如下所示:
def data: {a:{b:1,c:{b:2}}};
data
| paths(objects | has("b") )
Run Code Online (Sandbox Code Playgroud)
或者稍微更有效:
data
| paths
| select( .[-1] == "b" )
| .[:-1]
Run Code Online (Sandbox Code Playgroud)
调用:jq -n -c -f 程序.jq
输出:
["a"]
["a","c"]
Run Code Online (Sandbox Code Playgroud)