Bash字符串处理(与Java对照) - 27.转换大小写

Bash字符串处理(与Java对照) - 27.转换大小写

In Java

 String     toLowerCase()
          使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

 String     toUpperCase()
          使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

In Bash

使用tr命令来转换大小写

大写 => 小写

echo "$STR" | tr A-Z a-z

echo "$STR" | tr 'A-Z' 'a-z'

echo "$STR" | tr "A-Z" "a-z"

echo "$STR" | tr [:upper:] [:lower:]

echo "$STR" | tr "[A-Z]" "[a-z]"

[root@jfht ~]# STR=Hello

[root@jfht ~]# echo "$STR" | tr [:upper:] [:lower:]
hello
[root@jfht ~]# echo "$STR" | tr "[A-Z]" "[a-z]"
hello

错误:echo "$STR" | tr [A-Z] [a-z]

必须加上双引号或单引号

如果没有加上引号且当前目录有单个字符的文件或目录

就会出现意想不到的结果

[root@jfht ~]# touch E
[root@jfht ~]# echo "$STR" | tr [A-Z] [a-z]
Hello

小写 => 大写

echo "$STR" | tr a-z A-Z

echo "$STR" | tr 'a-z' 'A-Z'

echo "$STR" | tr "a-z" "A-Z"

echo "$STR" | tr [:lower:] [:upper:]

echo "$STR" | tr "[a-z]" "[A-Z]"

[root@jfht ~]# STR=Hello
[root@jfht ~]# echo "$STR" | tr [:lower:] [:upper:]
HELLO

[root@jfht ~]# echo "$STR" | tr "[a-z]" "[A-Z]"
HELLO

使用sed命令来转换大小写

大写 => 小写

错误:echo "$STR" | sed "y/[A-Z]/[a-z]/"

正确:echo "$STR" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/

小写 => 大写

错误:echo "$STR" | sed "y/[a-z]/[A-Z]/"

正确:echo "$STR" | sed y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

[root@jfht ~]# STR=Hello

[root@jfht ~]# echo "$STR" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
hello

[root@jfht ~]# echo "$STR" | sed y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/   
HELLO

使用awk命令来转换大小写

大写 => 小写

echo "$STR" | awk '{print tolower($0)}'

小写 => 大写

echo "$STR" | awk '{print toupper($0)}'

[root@jfht ctmw]# STR=Hello

[root@jfht ctmw]# echo "$STR" | awk '{print tolower($0)}'
hello
[root@jfht ctmw]# echo "$STR" | awk '{print toupper($0)}'
HELLO
[root@jfht ctmw]#

使用perl命令转换大小写

大写 => 小写

echo "$STR" | perl -e 'print lc <>;'

小写 => 大写

echo "$STR" | perl -e 'print uc <>;'

[root@jfht ctmw]# STR=Hello

[root@jfht ctmw]# echo "$STR" | perl -e 'print lc <>;'
hello
[root@jfht ctmw]# echo "$STR" | perl -e 'print uc <>;'
HELLO
[root@jfht ctmw]#

本文链接:http://codingstandards.iteye.com/blog/1164913   (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 

上节内容:Bash字符串处理(与Java对照) - 26.根据位置和长度截取子串

下节内容:Bash字符串处理(与Java对照) - 28.去除前后空白

猜你喜欢

转载自codingstandards.iteye.com/blog/1164913