为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2021-04-05 16:22:29
echo "Enter your First Name: "; read firstecho "Enter your Last Name: "; read lastuser=${first:0:1}${last:0:4}echo "Your Username is: " $userecho $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
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以使用grep的“ -c”选项来代替使用while循环:


#!/bin/bash

[ ! -f Print.txt ] && touch Print.txt 

read -p "Enter your First Name: " _FIRST

read -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}"

fi

echo "Your Username is: ${_USER}"

echo "${_USER}:${_FIRST}:${_LAST}" >> Print.txt

这样可以实现您的想法吗?


查看完整回答
反对 回复 2021-04-16
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您可以使用:


n=""

while grep -qFx "${user}$n" <(cut -d: -f1 Print.txt); do 

    ((n++))

done

user="$user$n"

echo "user name will be $user"


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信