gpt4 book ai didi

json - Bash JQ 在 JSON 文件中获取多个值问题

转载 作者:行者123 更新时间:2023-11-29 09:13:47 25 4
gpt4 key购买 nike

我正在尝试解析 JSON 文件以获取多个值。我知道如何解析数组 (.info.file.hashes[]) 中的特定值(“A”/“B”/“C”)。

例如:当对文件 b.json

发出以下命令时
jq -r '.info.file.hashes[] | select(.name == ("A","B","C")).value' b.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','.Finish','.Start' b.json 

我得到的结果是:

f34d5f2d4577ed6d9ceec516c1f5a744
null
66031dad95dfe6ad10b35f06c4342faa
null
9df25fa4e379837e42aaf6d05d92012018d4b659
null
null
null

预期结果:

f34d5f2d4577ed6d9ceec516c1f5a744
66031dad95dfe6ad10b35f06c4342faa
9df25fa4e379837e42aaf6d05d92012018d4b659
1475668827
1475668826

最佳答案

从字面上看只是下载并阅读手册

尝试

jq '(.info.file.hashes[] |select(.name == ("A","B","C")).value), .Finish, .Start' b.json

"f34d5f2d4577ed6d9ceec516c1f5a744"
"66031dad95dfe6ad10b35f06c4342faa"
"9df25fa4e379837e42aaf6d05d92012018d4b659"
1475668827
1475668826

请注意用于将管道与 Finish 和 Start 值分开分组的括号。

关于json - Bash JQ 在 JSON 文件中获取多个值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39913930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com