SHELL 中英文字母大小写转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL 中英文字母大小写转换相关的知识,希望对你有一定的参考价值。

参考技术A 大小写转换是一个常用功能,每种语言通常都提供了支持,那么在shell中怎么进行大小写转换呢?

tr可以非常容易地实现 sed 的许多基本功能。它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。

其命令格式为:

tr [option] ["string1"] ["string2"] < file

没有任何选项的时候,tr默认为替换操作,就是将string1在文件中出现的字符替换为string2中的字符,这里要注意的是替换关系。
-c选项,用string1中字符的补集替换string1,这里的字符集为ASCII。
-d选项,删除文件中所有在string1中出现的字符。
-s选项,删除文件中重复并且在string1中出现的字符,只保留一个。

-c 选项这里需要解释一下,我们来看一个例子:

指定string或string2的内容时,只能使用单字符或字符串范围或列表。

举几个栗子:

最后一种情况需要注意,当string2范围比string1小的时候,会出现这种意料之外的情况。

下面这种使用 -s 去重。

想要去除空行可以使用 tr -s "\n" < inputfile 这样有单独的"\n"就会被删除。

使用 -d 可以删除出现的字符:

shell将字符串转换将小写字母转换为大写字母

需求:将数据库中的所有表名转换成大写

在这里插入图片描述

方法一:typeset

for i in `mysql -uusername -p'password'  -h 192.168.0.145 test -e "show tables" | sed '1d'` ;do  typeset  -u i && echo $i ;done

命令实例:
test="dafoJg"
typeset  -u test
echo $test

在这里插入图片描述
问题:
使用typeset命令第一次转换的时候,还是原字符串

方法二:tr

###推荐用 tr 替换的方法
##upper表示大写,lower表示小写
for i in `mysql -uusername -p'password'  -h 192.168.0.145 test -e "show tables" | sed '1d'` ;do  echo "$i" | tr "[:lower:]" "[:upper:]"  ;done
或者
for i in `mysql -uusername -p'password'  -h 192.168.0.145 test -e "show tables" | sed '1d'` ;do  echo "$i" | tr [a-z] [A-Z]  ;done

命令实例:
echo "AedBcC" | tr "[:lower:]" "[:upper:]"  或者  echo "AedBcC" | tr [a-z] [A-Z]   #小写转换成大写
echo "AABBCC" | tr "[:upper:]" "[:lower:]"  或者  echo "AABBCC" | tr [A-Z] [a-z]   #大写转换成小写

在这里插入图片描述
在这里插入图片描述

以上是关于SHELL 中英文字母大小写转换的主要内容,如果未能解决你的问题,请参考以下文章

Python中大小写字母转换

C语言ASCII码与字母如何转换?求详解

C语言 字母转换成数字

excel 英文字母大小写转换

js字符串大小写转换的几种方法

编写程序输入一个小写字母,如何将其转换为大写字母输出