Bash检查用户是否存在,如果是,则为用户名添加数字

时间:2018-05-05 20:45:55

标签: linux bash mint

如果存在用户名,我必须为该用户名添加2号,如果该用户名也存在,我必须为其添加3号,依此类推...... (所以如果John存在,程序必须添加John2,如果他也存在,则必须添加John3等。)当然,我添加的每个用户都会被记住。

在bash中执行此操作的最短且最简单的方法是什么?

2 个答案:

答案 0 :(得分:0)

假设users.txt是:

joe
jimmy
foo
jimmy
bar
jimmy

然后你可以使用awk

awk 'cnt[$0]++{$0=$0 cnt[$0]-1} 1' users.txt

产生输出:

joe
jimmy
foo
jimmy1
bar
jimmy2

答案 1 :(得分:0)

一些有用的部分:

for n in "" {9..11}; do egrep -q "^stefan${n}\b" /etc/passwd && echo "name${n} " || echo "unknown name${n}"; done 
name 
unknown name9
unknown name10
unknown name11

迭代数字,查找(可能是生成的)用户名,如果已知或未知,则会有不同的反应,胶水名称和编号。