我有以下 json 作为 jq 处理的输入
[
{
"Category": "Disk Partition Details",
"Filesystem": "udev",
"Size": "3.9G",
"Used": 0,
"Avail": "3.9G",
"Use%": "0%",
"Mounted": "/dev"
},
{
"Category": "Disk Partition Details",
"Filesystem": "tmpfs",
"Size": "799M",
"Used": "34M",
"Avail": "766M",
"Use%": "5%",
"Mounted": "/run"
}
]
按照@peak here./csvtojson.sh bb.csv | jq 'map( {(.Category): del(.Category)})'
的建议使用 ,我已经达到了下面的json
[
{
"Disk Partition Details": {
"Filesystem": "udev",
"Size": "3.9G",
"Used": 0,
"Avail": "3.9G",
"Use%": "0%",
"Mounted": "/dev"
}
},
{
"Disk Partition Details": {
"Filesystem": "tmpfs",
"Size": "799M",
"Used": "34M",
"Avail": "766M",
"Use%": "5%",
"Mounted": "/run"
}
}
]
我想要的只是将类别放在顶部一次,然后像我在上一步中所做的那样将这个 json 分解到另一个级别。
[
{
"Disk Partition Details": {
"udev" :{
"Size": "3.9G",
"Used": 0,
"Avail": "3.9G",
"Use%": "0%",
"Mounted": "/dev"
},
"tmpfs" : {
"Size": "799M",
"Used": "34M",
"Avail": "766M",
"Use%": "5%",
"Mounted": "/run"
}
}
}
]
完整的
jq
解决方案:如果
"Filesystem"
键可能是数字 - 更改.[($o.Filesystem)]
为以下.[($o.Filesystem | tostring)]
输出:
以这种方式重新排列 JSON 是对自己的伤害。
原始的 JSON 对我来说看起来不错。
有了它,如果你想获得
udev
文件系统的所有大小,你会做像对重组文件的简单操作将是
此外,据我所知,重新排列的文件仅支持每种文件系统类型的一个挂载点。如果您有多个
tmpfs
文件系统,那么我不知道您会将它们放在哪里。