3
複数の値を取得するためにJSONファイルを解析しようとしています。私は配列(.info.file.hashes[])
の特定の値( "A"/"B"/"C")を解析する方法を知っています。例については複数の値を取得するBash JQ JSONファイルの問題
:
f34d5f2d4577ed6d9ceec516c1f5a744
66031dad95dfe6ad10b35f06c4342faa
9df25fa4e379837e42aaf6d05d92012018d4b659
b.json:今
{
"Finish": 1475668827,
"Start": 1475668826,
"info": {
"file": {
"Score": 4,
"file_subtype": "None",
"file_type": "Image",
"hashes": [
{
"name": "A",
"value": "f34d5f2d4577ed6d9ceec516c1f5a744"
},
{
"name": "B",
"value": "66031dad95dfe6ad10b35f06c4342faa"
},
{
"name": "C",
"value": "9df25fa4e379837e42aaf6d05d92012018d4b659"
},
{
"name": "D",
"value": "4a51cc531082d216a3cf292f4c39869b462bf6aa"
},
{
"name": "E",
"value": "e445f412f92b25f3343d5f7adc3c94bdc950601521d5b91e7ce77c21a18259c9"
}
],
"size": 500
}
}
}
、どのようにすることができます結果
jq -r '.info.file.hashes[] | select(.name == ("A","B","C")).value' b.json
b.json
ファイル上で次のコマンドを発行私は "完了"、 "開始"と複数の値を取得するハッシュ値は?私はコマンドを発行しようとしました。
jq -r '.info.file.hashes[] | select(.name == ("A","B","C")).value','.Finish','.Start' b.json
とイムは、その結果を得る:
f34d5f2d4577ed6d9ceec516c1f5a744
null
66031dad95dfe6ad10b35f06c4342faa
null
9df25fa4e379837e42aaf6d05d92012018d4b659
null
null
null
期待される結果:
f34d5f2d4577ed6d9ceec516c1f5a744
66031dad95dfe6ad10b35f06c4342faa
9df25fa4e379837e42aaf6d05d92012018d4b659
1475668827
1475668826
jqはわかりませんが、 '.info.file.hashes []'配列から開始と終了を選択しようとしているようです。 – 123
することもできます... 'jq -r '.info.file.hashes [] | .value 'b.json'を選択してください。 –
@ l'L'l:はいtrueですが、ハッシュの「名前」から選択的な「値」だけが必要です。上の投稿された質問については、選択的なハッシュ値とともに「Finish」と「Start」の値(1475668827,1475668826)を取得しようとしています。 – Arun