我想用bash将字符串中的第一个字符大写。
foo="bar";
//uppercase first character
echo $foo;
应打印“Bar”;
我想用bash将字符串中的第一个字符大写。
foo="bar";
//uppercase first character
echo $foo;
应打印“Bar”;
当前回答
foo="$(tr '[:lower:]' '[:upper:]' <<< ${foo:0:1})${foo:1}"
其他回答
仅使用awk
foo="uNcapItalizedstrIng"
echo $foo | awk '{print toupper(substr($0,0,1))tolower(substr($0,2))}'
使用sed的一种方法:
echo "$(echo "$foo" | sed 's/.*/\u&/')"
打印:
Bar
Posix兼容,子进程更少:
v="foo[Bar]"
printf "%s" "${v%"${v#?}"}" | tr '[:lower:]' '[:upper:]' && printf "%s" "${v#?}"
==> Foo[Bar]
这里只是为了好玩:
foo="bar";
echo $foo | awk '{$1=toupper(substr($1,0,1))substr($1,2)}1'
# or
echo ${foo^}
# or
echo $foo | head -c 1 | tr [a-z] [A-Z]; echo $foo | tail -c +2
# or
echo ${foo:1} | sed -e 's/^./\B&/'
这也可以……
FooBar=baz
echo ${FooBar^^${FooBar:0:1}}
=> Baz
FooBar=baz
echo ${FooBar^^${FooBar:1:1}}
=> bAz
FooBar=baz
echo ${FooBar^^${FooBar:2:2}}
=> baZ
等等。
来源:
Bash手动:Shell参数扩展 完整Bash指南:参数 Bash黑客的维基参数扩展
入门/教程:
Cyberciti.biz: 8。转换为大写到小写或反之亦然 Opensource.com: Bash中参数展开的介绍