我将如何传递“ aws iam list-users”的所有输出并引用用户名,以便我可以从“ aws iam list-groups-for-user”中提取所有相应的信息?最好将其保存为一个精美的.tsv文件。
答案 0 :(得分:1)
这可能会让您入门:
<20190306-11:00:08.000000000, FIX.4.2:TW->ISLD, event>
(Created session)
<20190306-11:00:08.000000000, FIX.4.2:TW->ISLD, event>
(Connecting to 127.0.0.1 on port 50182 (Source :0))
<20190306-11:00:08.000000000, FIX.4.2:TW->ISLD, outgoing>
(8=FIX.4.29=6735=A34=149=TW52=20190306-
11:00:08.00056=ISLD98=0108=30141=Y10=244)
<20190306-11:00:08.000000000, FIX.4.2:TW->ISLD, event>
(Initiated logon request)
<20190306-11:00:58.000000000, FIX.4.2:TW->ISLD, event>
(Timed out waiting for logon response)
<20190306-11:00:58.000000000, FIX.4.2:TW->ISLD, event>
(Disconnecting)
答案 1 :(得分:1)
要以SQL方式连接aws iam list-users
返回的表和aws iam list-groups-for-user
的迭代作为制表符分隔的数据,可以尝试执行以下操作:
#!/usr/bin/env bash
aws iam list-users --output text > users.txt
cut -f6 users.txt | while read user ; do
(echo $user ; aws iam list-groups-for-user \
--user-name $user \
--output text) | paste - - >> groups.txt
done
join -1 6 -2 1 users.txt groups.txt
注意:
--output text
会导致所有AWS CLI命令返回制表符分隔的数据。因此,第一行从users.txt
创建了一个“表” aws iam list-users
。aws iam list-groups-for-user
。paste - -
命令可将前两行文本“粘贴”在同一行上。这样做的目的是将用户添加到groups.txt
表中的字段中,以便我们可以在其后的字段中“加入”。join -1 6 -2 1 users.txt groups.txt
就像users.txt
和groups.txt
表上的SQL连接。 -1 6
说使用第一个文件中的第六个字段,-2 1
说使用第二个文件中的第一个字段作为要加入的字段。如果要删除输出中的某些字段,则可以修改join命令。为此,请指定要通过-o
包含的字段列表。例如
join -o 1.6,1.3,1.4,1.5,2.6,2.3,2.4,2.5,2.7 -1 6 -2 1 users.txt groups.txt
这表示从第一个文件中选择第六,第三,第四,第五字段,并从第二文件中选择第六,第三,第四,第五和第七字段。