如何为重复的用户名的每个实例添加+1增量

echo "Enter your First Name: "; read first

echo "Enter your Last Name: "; read last

user=${first:0:1}${last:0:4}

echo "Your Username is: " $user

echo $user":"$first":"$last>> Print.txt

到目前为止,我可以将用户的名字/姓氏存储到文件中,并使用该信息根据提供的信息创建一个唯一的用户名,该信息也存储在文件中。但是,意识到许多人可以使用相同的用户名,我将如何在print.txt文件中进行搜索以查看是否存在多个相同的用户名,然后根据该用户名将正确的增量添加到用户名中。我想我将需要一会儿循环和grep -q,但我有一段时间了,无法弄清楚。


以视觉方式显示我想要实现的示例


 first name: daniel

 last name: nash

 user name will be DNASH


 first name: donna

 last name: nash

 user name will be DNASH1


 first name: donald

 last name: nash

 user name will be DNASH2


开满天机
浏览 369回答 2
2回答

慕尼黑的夜晚无繁华

您可以使用grep的“ -c”选项来代替使用while循环:#!/bin/bash[ ! -f Print.txt ] && touch Print.txt read -p "Enter your First Name: " _FIRSTread -p "Enter your Last Name: " _LAST_USER=${_FIRST:0:1}${_LAST:0:4}_COUNT=`grep -c "${_USER}" Print.txt`if [ ${_COUNT} -gt 0 ] ; then    _USER="${_USER}${_COUNT}"fiecho "Your Username is: ${_USER}"echo "${_USER}:${_FIRST}:${_LAST}" >> Print.txt这样可以实现您的想法吗?

吃鸡游戏

您可以使用:n=""while grep -qFx "${user}$n" <(cut -d: -f1 Print.txt); do&nbsp;&nbsp; &nbsp; ((n++))doneuser="$user$n"echo "user name will be $user"
打开App,查看更多内容
随时随地看视频慕课网APP