jq 如何在单个 --arg 中使用带有嵌套键的拆分

jq how to use split with nested keys in single --arg

我想在 arg 中将嵌套键传递给 jq。使用单个 --arg key $mypath 失败。

看其他问题似乎split是正确的方法,但我找不到一个有效的基本示例。

mypath="level1.level2.level3"
//working hardcode
jq '.level1.level2.level3' $myfile

//variations tried
jq --arg nest "${mypath}" '.[$nest]' $myfile
jq --arg nest "${mypath}" '.[$nest]|split(".")' $myfile
jq --arg nest "${mypath}" '.|split(".")|[$nest]' $myfile

为此你需要 getpath/1。该方法采用一系列路径到特定节点和returns存在于它的值

jq --arg nest "$mypath" 'getpath($nest|split("."))'