遍历文本文件并添加用户

遍历文本文件并添加用户

我有一个用户列表,我想将其添加为我的服务器的用户(userlist.txt)。

我想使用 useradd 添加他们并将他们的名字作为评论

所以...文件的每一行都包含这样的内容:

vno572,2548,veronica norena,cornerstone group,user,4331,1872,49:46

我想获取“vno572”+“veronia norena”并添加用户,如下所示:

useradd vno572 -c "veronica norena" 

我需要遍历整个文件并在每一行中添加每个用户。

到目前为止我有这个:

cat userlist.txt | while read line 
do 
  echo $userid
  userid=’cut -d ‘,’ -f 1 userlist.txt’ 
  echo $name
  name=’cut -d ‘,‘ -f 3 userlist.txt’
  useradd $userid -c “$name”  
done

答案1

awk -F, 'BEGIN { OFS=FS } { print $1, $3 }' userlist.txt |
while IFS=, read username realname; do
    useradd -c "$realname" "$username" 
done

上面awk将从提供的文件中挑选出第一列和第三列,并创建一个以逗号分隔的用户名列表,后跟真实姓名。

读取以逗号分隔的输出awk,按逗号分割,并将其存储在 shell 变量usernameand中realname,并useradd调用。

通常,当创建用户时,可能希望同时为其添加主目录。通过添加到-m的调用来完成此操作useradd。如果用户应该属于特定组或具有辅助组,请将-g-G与输入数据中的其他信息一起使用。

答案2

尝试使用这个,尚未测试:

cat userlist.txt|awk -F',' '{print $1" "$3}'|while read var1 var2;
do
useradd $var1 -c "$var2"
done

希望它有效:)

答案3

仅使用awk

awk -F, '{ system(sprintf("useradd %s -c \"%s\"", $1, $3)) }' userlist.txt

相关内容