如何使用 jq 将对象数组转换为单独的键值列表 - 输出特定键值而不是数组索引
How to use jq to transform array of objects into separated list of key values - Outputing specific key value instead of array index
这与我之前的问题有关:
我如何(一般地)将下面的输入文件转换为下面的输出文件,使用 jq.键“id”处的值唯一标识数组元素。输出文件的记录格式为:(value at key "id") |钥匙 |值。
如果我将 awk 添加到上一个问题的解决方案中,我可以做到这一点,但我无法在 jq 中解决所有问题。
输入文件:
[{"id": 11, "b": 100},
{"id": 12, "d": "fred", "e": 300}]
输出文件:
11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300
这是一个使用 to_entries
的解决方案,它将对象分解为 key-value 对数组:
jq -r '.[] | .id as $id | to_entries[] | [$id,.key,.value] | join("|")'
11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300
这与我之前的问题有关:
我如何(一般地)将下面的输入文件转换为下面的输出文件,使用 jq.键“id”处的值唯一标识数组元素。输出文件的记录格式为:(value at key "id") |钥匙 |值。
如果我将 awk 添加到上一个问题的解决方案中,我可以做到这一点,但我无法在 jq 中解决所有问题。
输入文件:
[{"id": 11, "b": 100},
{"id": 12, "d": "fred", "e": 300}]
输出文件:
11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300
这是一个使用 to_entries
的解决方案,它将对象分解为 key-value 对数组:
jq -r '.[] | .id as $id | to_entries[] | [$id,.key,.value] | join("|")'
11|id|11
11|b|100
12|id|12
12|d|fred
12|e|300