给定文件test.json
{
"file": {
"id": "123456789",
"name": "137.txt"
},
"lines": 219,
"characters": 2456
}
Run Code Online (Sandbox Code Playgroud)
我想name从命令行使用 JQ 访问元素。
打字jq .file.name test.json会产生137.txt. 完美的!
不幸的是,我们真正的 json 结构要大得多,输入元素的完整路径可能会很痛苦。
name是否可以在不输入完整路径的情况下检索 的值?就像jq *.name test.json成为*通配符一样?
Ini*_*ian 15
一种方法是使用 进行深度递归以..尽可能深入,并且如果该值存在且不为空,则为
jq '.. | .name? | select(. != null)'
Run Code Online (Sandbox Code Playgroud)