値の例を含む次のJSONファイルがあります。
_{
"files": [{
"fileName": "FOO",
"md5": "blablabla"
}, {
"fileName": "BAR",
"md5": "alaldlafj"
}]
}
_
ここで必要なのは、たとえばfileNameが「FOO」であるmd5値を返すことです。このために、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 .json | jq -r'.files [] | select(.fileName == "FOO")。md5 '