bashjq在JSON文件中获取多个值的问题

bashjq在JSON文件中获取多个值的问题,json,bash,jq,Json,Bash,Jq,我试图解析一个JSON文件以获取多个值。我知道如何解析数组(.info.file.hashes[])中的特定值(“A”/“B”/“C”) 例如:在文件b.json jq -r '.info.file.hashes[] | select(.name == ("A","B","C")).value' b.json 结果: f34d5f2d4577ed6d9ceec516c1f5a744 66031dad95dfe6ad10b35f06c4342faa 9df25fa4e379837e42aaf6d

我试图解析一个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
    }
  }
}
现在,我怎样才能得到多个带有“Finish”、“Start”和散列值的值呢?我试着发出命令

 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[]
数组中选择“开始”和“完成”。您也可以这样做
jq-r'.info.file.hashes[]| select(.name).value'b.json
@l'l'l:Yes true,但我只需要从哈希中的任何“名称”中选择“值”。对于上面发布的问题,我正在尝试获取“完成”和“开始”值(1475668827、1475668826)以及选择性哈希值。^您应该将这些信息添加到您的问题中……123:非常感谢,现在我得到了它。
jq '(.info.file.hashes[] |select(.name == ("A","B","C")).value), .Finish, .Start' b.json

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