我在解析 CSV 文件以添加用户时遇到问题。
我编写了一个小脚本来添加 1000 个用户的列表:
export IFS=","
cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done
CSV 文件的格式为:
ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063
然而,运行脚本后,它会重复遍历整个文件:
useradd: invalid home directory '-u'
我使用export IFS用逗号分隔单词并将它们用作useradd命令的参数。
我阅读了手册并使用了主目录的值,但我觉得我的整个脚本都关闭了。
有人可以帮助我正确格式化脚本以从 CSV 文件添加用户吗?
作为参考,我使用此线程作为基础:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line
答案1
该错误是因为您useradd
使用-d
option 进行调用,该选项期望下一个单词是默认主目录中的主目录路径或目录名称(而不是-u
)。
作为第一个建议,请尝试:
cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done