`

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.去除前后空白

 

 

7
5
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics