2

我想将字符串从大写转换为小写。我知道有不同的方法可以解决这个问题,但我想了解为什么这个命令不起作用:

echo "aa" | sed 's/'[:upper:]'/'[:lower:]'/g'

使用字符类是错误的方法吗?

4

3 回答 3

5

从小写到大写,您可以使用

echo "aW123bR" | sed -r 's/[a-z]+/\U&/g'

tr命令是一个有趣的选择

echo "aW123bR" | tr '[:lower:]' '[:upper:]'
于 2013-10-26T10:55:11.683 回答
1

sed中,该y命令用于映射字符集:

sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'

它需要字符的文字列表,而不是字符类。

于 2013-10-26T10:41:38.297 回答
0

gawk 的另一种可能的解决方案:

[ ~]$ echo "HELLO"|awk '{print tolower($0)}'
hello
于 2013-10-26T14:55:38.490 回答