【jq】selectを使って対応するキーを取得する

AWSEC2の名前のみを取得したい場合は、Tags.Nameを取得しないといけない。
InstanceNameのような都合のよいものはなく、Nameタグになっているので工夫しないといけない。
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[]'
{ "Key": "Name", "Value": "Server1" } { "Key": "Name", "Value": "Server2" } { "Key": "Kind", "Value": "EC2" }
selectを使って、キー名.KeyがNameの場合のみをフィルタすることができる
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[] | select( .Key == "Name")'
このように出力される
{ "Key": "Name", "Value": "Server1" } { "Key": "Name", "Value": "Server2" }
ちなみに値のみを出力したい場合は|で区切ったあとに、.Valueを指定すればOK
aws ec2 describe-instances | jq -r '.[][].Instances[].Tags[] | select( .Key == "Name") | .Value'
Server1 Server2