2016-10-07 1 views
3

여러 값을 가져 오는 JSON 파일을 구문 분석하려고합니다. 배열 (.info.file.hashes[])에서 특정 값 ("A"/ "B"/ "C")을 구문 분석하는 방법을 알고 있습니다.여러 값을 가져 오는 Bash JQ JSON 파일의 문제

예를 들어

: 파일을 통해 다음과 같은 명령을 실행하면 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"alon과 함께 여러 값을 얻는다. g 해쉬 값? 커맨드를 발행하려고했습니다.

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 
+0

jq는 모르지만'.info.file.hashes []'배열에서 시작 및 끝내기를 선택하는 것처럼 보입니다. – 123

+1

당신도 할 수 ...'jq -r '.info.file.hashes [] | .value 'b.json'을 선택하십시오. –

+0

@ l' L' l : 그렇습니다.하지만 해시의 "이름"중 선택적인 "값"만 있으면됩니다. 위의 게시 된 질문의 경우, 선택적인 해시 값과 함께 "마침"및 "시작"값 (1475668827, 1475668826)을 얻으려고합니다. – Arun

답변

3

그대로 방금 다운로드 및 수동

이 시도 읽어

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

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

마침 및 시작 값과 별도로 파이프를 그룹화하는 데 사용되는 대괄호에 유의하십시오.

+1

123 : Great Thanks, 이제 알았습니다. – Arun

관련 문제