解析CSV文件以添加用户

时间:2018-06-02 18:12:38

标签: linux unix

我在解析CSV文件时无法添加用户。

我写了一个小脚本来添加1000个用户的列表。 我正在尝试将我的用户分类到特定的服务器中,所以我现在要做的就是抓住1-299行,按性别划分所有用户。我会有一个服务器与所有男性用户和一个所有女性用户。 另外,我必须添加他们的名字和姓氏的评论。 CSV格式为:

af1001,afeni,freeborn,f,May 7 1994,IR_Iran,5,Centre_back,Nizhny_Novgorod_Stadium
md1707,melaya,dion,f,October 16 1996,Colombia,13,Sweeper,Mordovia_Arena
lm1540,leondre,metzner,m,September 27 1985,Germany,5,Centre_midfield,Kazan_Arena
jo1304,juelz,orengo,m,September 27 1999,France,23,Goalkeeper,Ekaterinburg_Arena

到目前为止:

head -n 299 users.csv | grep -w f| cut -d ',' -f1 |  while read line; do sudo useradd “$line“ ; done

当然,这只会添加用户,但不会添加他们姓名的评论。我尝试了以下方法:

head -n 299 selli049.csv | grep -w f| cut -d ',' -f1,2,3|  while read line; do sudo useradd -c “$line” $f1 ; done

但那没用。我是新手,所以寻找有用的提示。谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

# Set a target gender
target_gender='f'

# Cat your csv file and set the while separator to a comma, then assign each field to a variable
cat users.csv | while IFS="," read username first last gender date country number position field; do
  # If the gender matches the target add a user and set their comment to first and last name
  if [[ "${gender}" == "${target_gender}" ]]; then
    # -c adds a comment
    sudo useradd ${username} -c "${first} ${last}"
  fi
done

补充阅读:

What is IFS?

useradd manpage