以转换成大写为例子:我都是使用的的测试的例子,如果是生产代码的话,请自行修改。

第一种方法:tr命令
tr -- translate or delete characters
转换成小写的时候就是tr A-Z a-z
# cat |tr a-z A-Z
wang_xiaoyu@qq.com
WANG_XIAOYU@QQ.COM


第二种方法:sed命令
# cat |sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
好ugly的方法,有点辱没Linux了。

第三种方法:awk语言
# cat |awk '{print toupper($0)}'
对应的转换成小写的做法是把toupper函数替换成tolower函数。

第四种方法:Perl语言
# perl -e '$_=<STDIN>;chomp;s/(.*)/\U$1/;print $_;'
对应的转换成小写的做法是替换s/(.*)/\U$1/为s/(.*)/\L$1'再运行。


其实这几种方法最最专业要数Perl了,因为它的文字处理功能可以说是最最强大了。有兴趣的话可以分别测试下:
s/(.*)/\U$1/g
s/(.*)/\L$1/g
s/(.*)/\u$1/g
s/(.*)/\l$1/g
s/(.*)/\uL$1/g
s/(.*)/\l\U$1/g

上面的几个匹配的意义是差别也不小!