使用 SED、TR 或 AWK 将首字母大写

Tys*_*317 3 grep sed awk tr

我有一个巨大的潜在密码文本文件,用于道德渗透测试。我想通过将给定密码的第一个字母大写来获得更多的密码变化。过去我用

sed -e "s/\b\(.\)/\u\1/g"
Run Code Online (Sandbox Code Playgroud)

sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g'
Run Code Online (Sandbox Code Playgroud)

要么大写第一个字母(第一个示例),要么大写第一个字母并强制其余字母小写(第二个示例)。但现在我有一个新问题。我的源文件如下所示:

password
p@ssword
123password
!!123password
!@#000password
Run Code Online (Sandbox Code Playgroud)

我希望输出是:

Password
P@ssword
123Password
!!123Password
!@#000Ppassword
Run Code Online (Sandbox Code Playgroud)

sedtr或者awk需要足够聪明以查找第一个 az 字符并将其大写,而不是专注于第一个字符,看到它是一个数字或符号,然后继续前进而不用我的话。

有没有办法做到这一点?

pLu*_*umo 5

sed会做得很好,如果你忽略它的默认值仅替换拳赛的叶形的修改:

sed 's/\([[:alpha:]]\)/\U\1/'
Run Code Online (Sandbox Code Playgroud)

但一般来说,您不会手动执行此操作,而是让破解工具在启用规则的情况下自动执行此操作。