2

我正在尝试从名为“accounts.list”的 .list 文件中提取信息,并在 CentOS 7 的命令行操作中使用提取的信息。我知道有一个简单的解决方案,但我终生无法找到它。

因此,该文件的每一行都按以下格式列出:

John Smith | jsmith
Jane Doe | jdoe

我需要做的是为用户添加每一行的信息。因此,例如,我想将每个部分添加到一个变量中,然后在 adduser 命令中使用该变量:

fn=John
ln=Smith
un=jsmith

useradd -c "$fn $ln" $un

所以我需要遍历每一行并提取该信息,添加用户,然后继续下一行。我想以最简单的方式做到这一点,但我尝试过的任何方法都没有奏效,任何帮助将不胜感激。

4

1 回答 1

2
while read -r fn ln ignore un; do useradd -c "$fn $ln" "$un"; done <accounts.list

或者,如果您更喜欢分布在多行上的命令:

while read -r fn ln ignore un
do
    useradd -c "$fn $ln" "$un"
done <accounts.list

这个怎么运作

文件的每一行都有四个字段:名字 (fn)、姓氏 (ln)、竖线、用户名 (un)。该命令read逐行读取输入文件并将这四个字段分配给变量fnlnignoreun

于 2015-09-15T04:39:14.660 回答