带有Sed和字符类的大写到小写

时间:2013-10-26 10:33:32

标签: class replace sed character

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

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

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

3 个答案:

答案 0 :(得分:4)

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

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

tr命令是一个有趣的替代

echo "aW123bR" | tr '[:lower:]' '[:upper:]'

答案 1 :(得分:0)

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

sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'

它需要一个字面的字符列表,而不是字符类。

答案 2 :(得分:0)

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

[ ~]$ echo "HELLO"|awk '{print tolower($0)}'
hello