2017-07-21 3 views
1

私はjsonファイルを解析するためにjqを使って時間を掛けています。私はIDと名前を同じ行につけなければならないので、後で論理をすることができます。 jq '{elements}[] | .[].idjqで2つの値を連続して表示する方法は?

{ 
"elements": [{ 
     "id": "e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f", 
     "name": "Mike", 
     "components": [{ 
      "id": "15f959fc-6d2d-451a-a59e-430a05a1852c", 
      "pid": "ZZZ1" 
     }], 
     "tenantIds": null, 
     "productIds": null 
    }, 
    { 
     "id": "d892f2eb-d7f3-49f8-9176-2113351cccf8", 
     "name": "Steve", 
     "components": [{ 
      "id": "0c44c917-e0e5-4fa3-b87c-89f9ac0815b4", 
      "pid": "XXX3" 
     }], 
     "tenantIds": null, 
     "productIds": null 
    } 
] 

}

私は、IDを取得していますが、私はどのようにIDの横に適切な名前を追加するための解決策を見つけることができません。私は

{elements}[] | .[].id + " " + .[].name 

{elements}[] | .[].id + .[].name 

のようなものを試してみましたが、それは私が期待したものではありません。

私が取得したい:

15f959fc-6d2d-451a-a59e-430a05a1852c Mike 
d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve 

任意の提案?

ありがとうございます!

答えて

2

文字列連結適用:

jq '.elements[] | .id +" "+ .name' file 

出力:-r--raw-output)を使用し、二重引用符なしで出力するには

"e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f Mike" 
"d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve" 

をオプション:

jq '.elements[] | .id +" "+ .name' -r file 
e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f Mike 
d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve 
+0

パーフェクト、それはそれです。ありがとう! – Branko

+0

@Branko、ようこそ – RomanPerekhrest

関連する問題