I have this command which displays all the record from the search. But I would like to filter only the record that matches the search word.
For e.g.
for user in $(aws iam list-users |grep -i UserName|sed -e 's/.*: \"//' -e 's/\",//'); do
echo USER: $user;
echo TAGS:
aws iam list-user-tags --user-name $user --output text | awk '{print $2,$3}'
echo GROUPS:
aws iam list-groups-for-user --user-name $user --output text|awk {'print $5'}; done > users.txt
The above command displays the following results.
User: [email protected]
TAGS:
Team red
Status active
Environment: nonprod
GROUPS:
iam-nonprod
iam-prod
User: [email protected]
TAGS:
Team green
Status active
Environment: nonprod
GROUPS:
iam-nonprod
iam-prod
etc.
I would like get all the user where tag Team == red.
I tried with search string in line 4 like,
aws iam list-user-tags --user-name $user --output text | awk '/red/{print $2,$3}'
but it displays only one line
Team red
But I would like to display full record like
User: [email protected]
TAGS:
Team red
Status active
Environment: nonprod
GROUPS:
iam-nonprod
iam-prod
Could you please help how I can display all the record where tag Team == red.
aws iam list-users --output text --query "Users[].UserName"
to get a list of names.