Linux
JQ(根據 NAME 獲取 ID)
我得到了一長串這樣的數組
{ "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 }
我只想通過 JQ 獲取名稱為 BMA 的 ID。目前我解析“ jq -r ”。
$$ $$$$ “name” $$" 我可以按名稱過濾 curl 的輸出,我會得到 “BMA” 以及其他 100 個名稱,但我只需要過濾名稱為 =BMA 的 ID。有什麼想法嗎?
jq
您應該能夠通過以下方式完成此操作:
jq '.[] | select( .name == "BMA" ).id'
如果 name 是
BMA
它將提取並輸出相應的.id
.要使用 shell 變數的值,請將其導入
jq
with--arg
:myvariable=BMA jq --arg name "$myvariable" '.[] | select( .name == $name ).id'
json -c 'this.name === "BMA"' -a id
jq 解決方案的替代方案是*
jtc
*:bash $ jtc -w'[name]:<BMA>+0 [-1] [id]' input.json "byu6g6c4cjys5mdkg5znh8ju8c" bash $