请帮忙!
我在这里有一点时间敏感问题,所以我转向Stackoverflow,希望能得到一个相当快的回复。我不是bash专家,特别是在必须快速思考的时候。我试图从用户数据库中的两列awk到OpenStack API。数据库(我创建的平面文件)非常简单。它看起来像这样:
| ID | username | True |
数据库非常大,所以我试图遍历这个。这是我试图运行的命令:
for user in $(cat users.txt); do keystone user-role-add --user $user --role blah --tenant $tenant; done
这很有用,假设users.txt列表在每一行都有一个用户名。
我需要修改此命令以从$ user用户的user.txt中提取用户名,并从$ tenant中的users.txt中提取相应的ID
*解决方案*
while read line;do
tenant=$(echo $line|awk '{print $2}')
user=$(echo $line|awk '{print $4}')
keystone user-role-add --user $user --role blah --tenant $tenant
done <users.txt
再次感谢!
答案 0 :(得分:1)
你可能想要像...这样的东西。
while read line;do
id=$(echo $line|awk '{print $2}')
username=$(echo $line|awk '{print $4}')
bool=$(echo $line|awk '{print $6}')
# do other
# action here
done <users.txt
答案 1 :(得分:1)
这样可以避免使用awk,它应该更加优化:
credential.helper