2016-01-17 7 views
13

で複数のフィールドを選択します私の入力ファイルは、次のようなものになります方法:私はJQ

{ 
"login": "dmaxfield", 
"id": 7449977, 
... 
} 
{ 
"login": "dmaxfield", 
"id": 7449977, 
... 
} 

を私はこれですべてのログイン名を取得することができます:cat members | jq '.[].login'

が、私はクラックすることができていませんログインとIDの両方を取得する構文ですか?

+0

あなたが期待される出力がどのように見えるかの例を提供することはできますか?ログインIDペアを表現する方法はたくさんあります。 –

答えて

20

jq '.[] | .login, .id'を使用して、ログインごとにIDを取得することができます。

+0

入力がすでにオブジェクトのストリームであるようです。 –

+0

ユーザーのサンプル入力はオブジェクトのストリームのように見えますが、提供するサンプルスクリプトのために、省略された配列にラップされていると仮定しています。 –

+0

@サンティアゴラプレスタ:その前提は必要ありません。 'jq'は一連のオブジェクトでうまく動作します。配列ラッパーは必要ありません。 '...'文字列と最後の末尾のカンマは削除が必要ですが、私はこれを暗黙のうちに含めると考えています。 –

6

これが私の作品:

> echo '{"a":1,"b":2,"c":3}{"a":1,"b":2,"c":3}' | jq '{a,b}' 
{ 
    "a": 1, 
    "b": 2 
} 
{ 
    "a": 1, 
    "b": 2 
} 
関連する問題