我有两个名为Group.csv
的文件
thisisgroupone
和另一个名为Users.csv
Testuser1,Testuser2,TestUser3
到目前为止我的脚本:
# this part of the script will now add the created users into the created group!
while IFS=, read col1 col2 col3
do
usermod -g $READ GROUP.CSV$ $col1
usermod -g $READ GROUP.CSV$ $col2
usermod -g $READ GROUP.CSV$ $col3
done < Users.csv
echo "Users now moved to new group sepcifyed in Group.csv"
谢谢= D
答案 0 :(得分:4)
一种技巧是:
while IFS=, read col1 col2 col3
do
read -u 3 GROUP
usermod -g $GROUP $col1
usermod -g $GROUP $col2
usermod -g $GROUP $col3
done < Users.csv 3< Group.csv
或
while IFS=, read col1 col2 col3 && read -u 3 GROUP
do
usermod -g $GROUP $col1
usermod -g $GROUP $col2
usermod -g $GROUP $col3
done < Users.csv 3< Group.csv
上述任何一项都不能确保文件的行数相同,您可能需要检查一下。
答案 1 :(得分:2)
paste -d' ' Group.csv Users.csv
将生成输出,例如:
Testgroup1 Testuser1 Testuser2 Testuser3
Testgroup2 Testuser4 Testuser5 Testuser6
...
因此您可以将此输出发送到您的脚本,它可以读取单个文件中的行,其中每行的第一个字段是组,其余的是用户。
您可以使用|
将paste
的输出直接发送到您的脚本。或者,您可以创建临时文件paste -d' ' Group.csv Users.csv > temp.csv
,然后使用< temp.csv
来读取文件。