代码之家  ›  专栏  ›  技术社区  ›  art vanderlay

jq如何在single--arg中使用带嵌套键的split

jq
  •  1
  • art vanderlay  · 技术社区  · 4 年前

    我想在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
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   Inian    4 年前

    你需要 getpath/1 为了这个。该方法获取指向特定节点的路径数组,并返回该节点上的值

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