代码之家  ›  专栏  ›  技术社区  ›  xaxa

jq合并对象内的数组[关闭]

  •  1
  • xaxa  · 技术社区  · 7 年前

    我有两个东西

    {
        "a": [
            "1-1",
            "1-2"
        ],
        ...
    }
    

    { 
        "a": [
            "2-1",
            "2-2",
            "2-3"
        ],
        ...
    }
    

    这两个物体都有其他的钥匙,但我不在乎它们。

    我想得到的是一个对象,其中的元素 "a" 将连接:

    {
        "a": [
            "1-1",
            "1-2",
            "2-1",
            "2-2",
            "2-3"
        ],
        ...
    }
    

    其他键可以替换/合并/不重要。

    我该怎么做呢 jq ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   peak    7 年前

    一种方法是使用-s命令行选项:

    jq -s '.[1].a as $a1 | .[0] | (.a += $a1)'
    

    既然你不在乎非A钥匙,另一种选择是:

    jq -n '{a: (input.a + input.a)}' 
    

    注意 -n 选项。