itsource

jq 배열에서 값 선택

mycopycode 2023. 3. 23. 22:43
반응형

jq 배열에서 값 선택

예제 값을 가진 다음 JSON 파일이 있습니다.

{
    "files": [{
        "fileName": "FOO",
        "md5": "blablabla"
    }, {
        "fileName": "BAR",
        "md5": "alaldlafj"
    }]
}

여기서 원하는 것은 md5 값을 반환하는 것입니다.예를 들어 fileName은 "FOO"입니다.이에 대해 저는 다음과 같은 진술을 가지고 있습니다.jq:

cat <file>.json | jq '.[] | select(.fileName=="FOO")' 

그러나 응답 응답은 다음과 같습니다.jq: error (at <stdin>:11): Cannot index array with string "fileName"

키 fileName이 특정 인수와 동일한 경우 md5 값을 반환하는 올바른 방법은 무엇입니까?

답을 찾았습니다.

cat <file>.json | jq -r '.files[] | select(.fileName=="FOO") | .md5'

모든 파일 이름을 선택하는 어레이에서 값을 선택하는 일반적인 방법에 대한 답변:

cat results.json | jq '.files[] | .filename'

또는 다음과 같이 입력합니다.

cat <file>.json | jq -r '.files[] | select(.fileName=="FOO").md5'

언급URL : https://stackoverflow.com/questions/37563691/jq-select-value-from-array

반응형