我想将字符串从大写转换为小写。我知道有不同的方法来解决这个问题,但我想了解为什么这个命令不起作用:
echo "aa" | sed 's/'[:upper:]'/'[:lower:]'/g'
使用字符类是错误的方法吗?
答案 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