2016-09-30 8 views
0

私は以下をフィルタリングすることができません。jqを使用してJSON出力をフィルタリングできません。私はCURLを使用しています

以下のJSONファイルの名前タグの下にある「SnapshotSet」で始まる名前の数を調べる必要があります。

例 - 私はSnapshotSetで始まるすべての名前をフィルタリングしようとしている...しかし、次のエラーが発生します最初のステップとして"name": "SnapshotSet.1475076959480"

JQ '.snapshot-sets[]' testjq エラー:私は出力

jq '.links[]' testjq 
{ 
    "href": "https://test.com/api/json/v2/types/snapshot-sets/", 
    "rel": "self" 
} 

名「スナップショット・セット」とは何を取得することができていたリンクを除外したときにセットが

を定義していないが?

下記のJSONファイルをご覧ください。

{ 
"links": [ 
    { 
     "href": "https://test.com/api/json/v2/types/snapshot-sets/", 
     "rel": "self" 
    } 
], 
"snapshot-sets": [ 
    { 
     "href": "https://test.com/api/json/v2/types/snapshot-sets/1", 
     "name": "SnapshotSet.1475076959480" 
    }, 
    { 
     "href": "https://test.com/api/json/v2/types/snapshot-sets/3", 
     "name": "SnapshotSet.1475165496304" 
    }, 
    { 
     "href": "https://test.com/api/json/v2/types/snapshot-sets/2", 
     "name": "SnapshotSet.1475158265437" 
    }, 
    { 
     "href": "https://test.com/api/json/v2/types/snapshot-sets/63659", 
     "name": "server1a_b_c_STFS1474869600618" 
    }, 

答えて

1

としてはhere、キーが-文字が含まれている場合.keynameを使用することができない省略形を説明しました。

あなたのファイルからのすべての名前のリストを取得するには、以下を実行することができます

jq '."snapshot-sets"[].name' testjq 
+0

はありがとうございました。それは完璧に働いた:-) –

関連する問題