小编Abh*_*avK的帖子

在 BASH 中将电子邮件 ID 中的所有第一个字符转换为大写

我需要在脚本中接受电子邮件 ID 和全名,如果未提供全名,我需要从电子邮件 ID 生成名称。像这样的东西:

Case 1:
EmailID: user.name@domainname.com
Full Name: User Name
Case 2:
EmailID: user.name2@domainname.com
Full Name: User Name2
Case 3:
EmailID: this.is.a.very.long.email.id@domainname.com
Full Name: This Is A Very Long Email Id
Run Code Online (Sandbox Code Playgroud)

这我已经能够使用以下步骤实现:

EMAIL_ADDRESS="$1"
ID=(`echo $EMAIL_ADDRESS | cut -d'@' -f1| tr '.' ' '`)
NEW_ID=()
NUM=0
for IN_VAL in ${ID[@]}
do
    NEW_ID[$NUM]="`echo ${IN_VAL^}`"
    NUM=$((++NUM))
done
echo "${NEW_ID[@]}"
Run Code Online (Sandbox Code Playgroud)

我在 BASH 版本 4.1.2

我认为必须有更好的方法来实现这一目标。此外,我已经看到了一个问题,因为我假设字段分隔符将是点 (.) 字符,而不是像下划线 (_) 或连字符 (-) 或其他任何东西。如果有更好的方法来做到这一点,请告诉我。谢谢。

bash

4
推荐指数
2
解决办法
1596
查看次数

标签 统计

bash ×1