Who*_*AmI 2 linux javascript json jq
我得到一长串这样的数组
{
"id": "byu6g6c4cjys5mdkg5znh8ju8c",
"create_at": 1511875272294,
"update_at": 1511875272294,
"delete_at": 0,
"display_name": "BMA",
"name": "BMA",
"description": "",
"email": "aleksandar.ivanov@random.com",
"type": "O",
"company_name": "",
"allowed_domains": "",
"invite_id": "gdgz1tbxuinntx1fbr1ax7kehy",
"allow_open_invite": false,
"scheme_id": null
}
Run Code Online (Sandbox Code Playgroud)
我只想通过 JQ 获取名称为 BMA 的 ID。目前我解析“ jq -r '.[][“name”]”,我可以按名称过滤 curl 的输出,我会得到“BMA”和其他 100 个名称,但我只需要过滤 ID其中名称是 =BMA。有任何想法吗?
知乎
您应该能够通过以下方式完成此操作:
jq '.[] | select( .name == "BMA" ).id'
Run Code Online (Sandbox Code Playgroud)
如果 name 是BMA
,它将提取并输出相应的.id
.
要使用shell变量的值,将其导入jq
具有--arg
:
myvariable=BMA
jq --arg name "$myvariable" '.[] | select( .name == $name ).id'
Run Code Online (Sandbox Code Playgroud)
json -c 'this.name === "BMA"' -a id
Run Code Online (Sandbox Code Playgroud)