如何将jq输出多个数组放在单个数组中
How to put jq output multi arrays in single array
在使用 jq 从 json 文件中读取数据时。
此命令 jq ".[]|keys" config.json
给出以下输出:
[
"N1",
"N2"
]
[
"N3",
"N4"
]
我理想中想要的很简单:
["N1", "N2", "N3", "N4"]
然而,
我怎么找不到方法来完成这个。
配置文件:
{
"Test1":{
"N1":{
"crn":"1",
"con":"2"
},
"N2":{
"crn":"100",
"con":"200"
}
},
"test2":{
"N3":{
"crn":"xx",
"con":"2x"
},
"N4":{
"crn":"xxxx",
"con":"3xx"
}
}
}
改用map
:
jq 'map(keys[])' config.json
[
"N1",
"N2",
"N3",
"N4"
]
请注意 keys
对键进行排序。如果您希望它们不排序,请改用 keys_unsorted
。
此外,如果你想在一行中输出,请添加 --compact-output
(或 -c
)选项(thx @Cyrus)。
在使用 jq 从 json 文件中读取数据时。
此命令 jq ".[]|keys" config.json
给出以下输出:
[
"N1",
"N2"
]
[
"N3",
"N4"
]
我理想中想要的很简单:
["N1", "N2", "N3", "N4"]
然而, 我怎么找不到方法来完成这个。
配置文件:
{
"Test1":{
"N1":{
"crn":"1",
"con":"2"
},
"N2":{
"crn":"100",
"con":"200"
}
},
"test2":{
"N3":{
"crn":"xx",
"con":"2x"
},
"N4":{
"crn":"xxxx",
"con":"3xx"
}
}
}
改用map
:
jq 'map(keys[])' config.json
[
"N1",
"N2",
"N3",
"N4"
]
请注意 keys
对键进行排序。如果您希望它们不排序,请改用 keys_unsorted
。
此外,如果你想在一行中输出,请添加 --compact-output
(或 -c
)选项(thx @Cyrus)。