我有以下包含示例值的JSON文件:
{
"files": [{
"fileName": "FOO",
"md5": "blablabla"
}, {
"fileName": "BAR",
"md5": "alaldlafj"
}]
}现在我想要的是返回foo值,例如fileName是“md5”。为此,我在jq中使用了以下语句
cat <file>.json | jq '.[] | select(.fileName=="FOO")' 但是返回的响应是:jq: error (at <stdin>:11): Cannot index array with string "fileName"
当关键字fileName等于某个参数时,返回md5值的正确方法是什么?
发布于 2016-06-01 19:11:30
找到了答案:
cat <file>.json | jq -r '.files[] | select(.fileName=="FOO") | .md5'发布于 2019-12-04 01:33:04
或者:
cat <file>.json | jq -r '.files[] | select(.fileName=="FOO").md5'发布于 2021-09-30 23:56:04
要回答更一般的如何从数组中选择值选择所有文件名的问题:
cat results.json | jq '.files[] | .filename'https://stackoverflow.com/questions/37563691
复制相似问题