以转换成大写为例子:我都是使用的的测试的例子,如果是生产代码的话,请自行修改。
第一种方法: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了,因为它的文字处理功能可以说是最最强大了。有兴趣的话可以分别测试下:
第一种方法: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
s/(.*)/\L$1/g
s/(.*)/\u$1/g
s/(.*)/\l$1/g
s/(.*)/\uL$1/g
s/(.*)/\l\U$1/g
上面的几个匹配的意义是差别也不小!
本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/197623,如需转载请自行联系原作者