使用jq按索引从多个列表中打印元素

时间:2018-08-07 21:57:54

标签: bash jq

我有一个包含3个相等列表的json:

{
    "value": {
        "list1": [
            "el11",
            "el12",
            "el13",
            "el14"
        ],
        "list2": [
            "el21",
            "el22",
            "el23",
            "el24"
        ],
        "list3": [
            "el31",
            "el32",
            "el33",
            "el34"
        ]
    }
}

我正在尝试从每个列表中提取具有相同索引的元素:

el11 el21 el31
...
el13 el23 el33

理想情况下,这些需要导出为ENV值。但是我只想知道是否可以用jq做到这一点。以及如何。

谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用transpose函数。例如,

$ jq -r '[.value[]] | transpose[] | join (" ")' tmp.json
el11 el21 el31
el12 el22 el32
el13 el23 el33
el14 el24 el34