Class 带Sed和字符类的大小写转换
我想把字符串从大写转换成小写。我知道有不同的方法可以解决这个问题,但我想了解为什么这个命令不起作用:Class 带Sed和字符类的大小写转换,class,replace,sed,character,Class,Replace,Sed,Character,我想把字符串从大写转换成小写。我知道有不同的方法可以解决这个问题,但我想了解为什么这个命令不起作用: echo "aa" | sed 's/'[:upper:]'/'[:lower:]'/g' 使用字符类是错误的吗?在sed中,y命令用于映射字符集: sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' 它需要字符的文字列表,而不是字符类。从小写到大写,您可以使用 echo "aW123bR" | sed -r 's/[
echo "aa" | sed 's/'[:upper:]'/'[:lower:]'/g'
使用字符类是错误的吗?在
sed
中,y
命令用于映射字符集:
sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'
它需要字符的文字列表,而不是字符类。从小写到大写,您可以使用
echo "aW123bR" | sed -r 's/[a-z]+/\U&/g'
tr
命令是一个有趣的选择
echo "aW123bR" | tr '[:lower:]' '[:upper:]'
gawk的另一个可能解决方案:
[ ~]$ echo "HELLO"|awk '{print tolower($0)}'
hello
但是不可能使用[:upper:]或[:lower:]来获得更优雅的解决方案吗?据我所知不可能。
y
命令仅适用于字符,不适用于类。你甚至不能写y/A-Z/A-Z/
。