我想将字符串从大写转换为小写。我知道有不同的方法可以解决这个问题,但我想了解为什么这个命令不起作用:
echo "aa" | sed 's/'[:upper:]'/'[:lower:]'/g'
使用字符类是错误的方法吗?
从小写到大写,您可以使用
echo "aW123bR" | sed -r 's/[a-z]+/\U&/g'
tr
命令是一个有趣的选择
echo "aW123bR" | tr '[:lower:]' '[:upper:]'
在sed
中,该y
命令用于映射字符集:
sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
它需要字符的文字列表,而不是字符类。
gawk 的另一种可能的解决方案:
[ ~]$ echo "HELLO"|awk '{print tolower($0)}'
hello