2017-11-24 10 views
0

私はjqを初めて使用しているので、上記のjsonからアイドル値を取得する方法を理解できません。 jsonコマンドを使用してjsonを取得します。 jqを使用してアイドル値を取得するにはどうすればよいですか?ここjq |入れ子にされたjsonオブジェクト内の特定の項目を返す

{ 
    "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 
       } 
      ] 
      } 
     ] 
     } 
    ] 
    } 
} 

答えて

2

データを想定し、一つの解決策であるdata.jsonである:

この特定のケースで
$ jq -M '.sysstat.hosts[0].statistics[0]."cpu-load"[0].idle' data.json 
92.69 

Try it online at jqplay.org

+0

助けてくれてありがとう、jqplay.orgは別のコマンドで遊ぶのが良いです。私のために働いた。 –

1

、甘いショート・アンド・ソリューションである:

.. | .idle? // empty 

「アイドル」の場所が重要な場合は、さらに表示されます一度に(またはまったく)何もしないでください:

.sysstat.hosts[].statistics[] | .["cpu-load"][] | .idle 
+0

.. | .idle?私の場合は実際には機能しませんが、後は動作します。手伝ってくれてありがとう。 –

関連する問題