2017-10-19 8 views
0

次のJSONオブジェクトの状態が開始されたときに警告が表示されるように設定しようとしています。私は条件付きのjqで遊んで始めているが、私はこれに正規表現を実装する方法がわからない。jqは、オブジェクトが一致しない場合にのみ表示されます

{ 
    "page": 0, 
    "page_size": 100, 
    "total_pages": 10, 
    "total_rows": 929, 
    "headers": [ 
    "*" 
    ], 
    "rows": [ 
    { 
     "id": "168", 
     "state": "STARTED" 
    }, 
    { 
     "id": "169", 
     "state": "FAILED" 
    }, 
    { 
     "id": "170", 
     "state": "STARTED" 
    } 
    ] 
} 

私はこれは私が私が私の出力が

{ 
"id": "169", 
"state": "FAILED" 
} 

答えて

1

のようなものにしたいと思います

jq '.rows[] | .id, select(.state | contains("!STARTED"))' test.json 

をしようとしたもので、失敗したオブジェクトのIDと状態を表示したいです.stateが "STARTED"でないオブジェクトを単に出力したい場合は、否定を使用してください:

.rows[] | select(.state != "STARTED") 

「開始済み」状態が複数の値に関連付けられている場合、詳細を記入してください。正規表現を使用する必要はありません。実際に正規表現を使用する必要がある場合は、おそらくtestを使用することになります。

関連する問題