私はこのような長い配列を得ました
{
"id": "byu6g6c4cjys5mdkg5znh8ju8c",
"create_at": 1511875272294,
"update_at": 1511875272294,
"delete_at": 0,
"display_name": "BMA",
"name": "BMA",
"description": "",
"email": "[email protected]",
"type": "O",
"company_name": "",
"allowed_domains": "",
"invite_id": "gdgz1tbxuinntx1fbr1ax7kehy",
"allow_open_invite": false,
"scheme_id": null
}
JQでBMAというIDを取得したいです。現在、 "jq -r '.[]["name"]" を解析し、カールの出力を名前でフィルタリングでき、100 個の異なる名前で "BMA" を取得できますが、名前のある ID だけをフィルタリングするだけです。 。 = BMA 。どんなアイデアがありますか?
ベストアンサー1
ジャック
次の方法でこれを行うことができます。
jq '.[] | select( .name == "BMA" ).id'
名前がある場合BMA
は.id
。
シェル変数の値を使用するには、次のようjq
にインポートします--arg
。
myvariable=BMA
jq --arg name "$myvariable" '.[] | select( .name == $name ).id'
json -c 'this.name === "BMA"' -a id