我是jq的新手,无法解决如何从上面的json获取空闲值。通过使用jq命令来检索json。如何使用jq获取空闲值?
{
"sysstat": {
"hosts": [
{
"nodename": "localhost.localdomain",
"sysname": "Linux",
"release": "4.13.13-200.fc26.x86_64",
"machine": "x86_64",
"number-of-cpus": 2,
"date": "24/11/17",
"statistics": [
{
"timestamp": "00:00:45",
"cpu-load": [
{
"cpu": "0",
"usr": 5.08,
"nice": 0.03,
"sys": 1.31,
"iowait": 0.07,
"irq": 0.73,
"soft": 0.09,
"steal": 0,
"guest": 0,
"gnice": 0,
"idle": 92.69
}
]
}
]
}
]
}
}
答案 0 :(得分:2)
这是一个解决方案,假设数据位于data.json
:
$ jq -M '.sysstat.hosts[0].statistics[0]."cpu-load"[0].idle' data.json
92.69
答案 1 :(得分:2)
在这种特殊情况下,一个简短而有效的解决方案是:
.. | .idle? // empty
如果"空闲"的位置很重要,如果它出现不止一次(或根本不出现),你可以考虑:
.sysstat.hosts[].statistics[] | .["cpu-load"][] | .idle