2

我有 2 个文件,其中一个名为Group.csvContaining

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

4

2 回答 2

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

以上都不能确保文件具有相同的行数,您可能需要检查一下。

于 2013-10-05T04:01:02.337 回答
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读取该文件。

于 2013-10-05T03:58:58.123 回答