如果存在用户名,我必须为该用户名添加2号,如果该用户名也存在,我必须为其添加3号,依此类推...... (所以如果John存在,程序必须添加John2,如果他也存在,则必须添加John3等。)当然,我添加的每个用户都会被记住。
在bash中执行此操作的最短且最简单的方法是什么?
答案 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
迭代数字,查找(可能是生成的)用户名,如果已知或未知,则会有不同的反应,胶水名称和编号。