Shell之字符串大小写转换

方案1:使用tr命令

    Linux中的tr命令可以用于转换或删除文本中的指定字符。tr命令默认从标准输入中读取数据,经过字符串转义之后,将结果输出到标准输出。
# 使用tr命令将字符串中小写字符转换成大写
echo "TomAndersen" | tr a-z A-Z
# TOMANDERSEN

# 同理大写转小写
echo "TomAndersen" | tr A-Z a-z
# tomandersen

# 使用tr命令转换字符串中全部指定字符
echo "Hello Hello" | tr Ho hO
# hellO hellO

# 使用tr命令删除文本中全部指定字符
echo "Hello Hello" | tr -d H
# ello ello

方案2:使用awk命令

    awk工具是一种强大的文本分析工具,主要功能是将每行文本按照特定分隔符分成多个字段进行处理,默认每行使用空格和制表符分割,使用自带的tolower函数能够将指定的字段全部字符转换成小写,使用toupper函数能够将全部字符转换成大写。
# 使用awk命令tolower函数将字符串转换成小写
echo "Tom Andersen" | awk {print tolower($0)}
# tom andersen

# 使用awk命令toupper函数将字符串转换成大写
echo "Tom Andersen" | awk {print toupper($0)}
# TOM ANDERSEN

方案3:利用Bash特性

    在读取变量时使用^^字符能够将输出字符转换成全大写,使用,,字符能够将输出字符转换成全小写
# 读取变量输出全大写
var1=TomAndersen
echo ${var1^^}
# TOMANDERSEN

# 读取变量输出全小写
var2=TomAndersen
echo ${var2,,}
# tomandersen

方案4:使用typeset/declare命令

    使用typeset或者declare命令设置变量的属性,两个命令使用方式完全相同。使用此命令时需慎重,当使用typeset/declare命令改变变量的属性时,这种改变是长期有效的,且如果将变量设置为只读命令,那么一般情况下将无法修改此变量的只读属性(可以通过gdb工具重置变量),只读变量生命周期一般与当前Shell线程相同
# 使用typeset/declare声明变量的属性,将其设置为默认大写
typeset -u a
a="abc"
echo $a
# ABC

# 使用typeset/declare声明变量的属性,将其设置为默认小写
typeset -l a
a="ABC"
echo $a
# abc

End~

经验分享 程序员 微信小程序 职场和发展