BASH - 制作第一个Letter大写字母

fwa*_*ter 9 string bash capitalization

我尝试将CS​​V中的第一个字母大写,其排序方式如下:

A23; asd23; sdg3

我想要的是这样的输出

A23; Asd23; Sdg3

所以第一个String应该是原样的,但第二个和第三个字符串应该是大写的第一个字母.我试过AWK和SED,但我找不到合适的解决方案.有人可以帮忙吗?

Bar*_*Sas 17

只需按字母顺序排列所有字母:

sed -e 's/;./\U&\E/g'
Run Code Online (Sandbox Code Playgroud)

  • `\ E`不需要. (2认同)

enz*_*tib 7

Bash(版本4及更高版本)有一个"第一个大写"运算符${var^},但在这种情况下我认为最好使用sed:

sed -r 's/(^|;)(.)/\1\U\2/g' <<< "a23;asd23;sdg3"
Run Code Online (Sandbox Code Playgroud)