对字符串变量取值的处理一

2022/1/7 6:07:50

本文主要是介绍对字符串变量取值的处理一,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

shell中对字符串变量取值的处理一

定义字符串变量

table_name='maomao_table_temp_20220106'
获取变量字符串长度
# ${#变量名}
echo ${#table_name}  # 结果: 26
字符串变量的位数截取
# 从左边开始截取 ${变量名:起始位置:截取位数};字符串就相当于字符数组,从0开始计算位数
echo ${table_name:7:5} # 结果: table
# 可以将截取位数省略,就相当于截取从起始位置开始直到末尾的字符
echo ${table_name:7} # 结果: table_temp_20220106

# 从右边开始截取 ${变量名:0-起始位置:截取位数}/${变量名: -起始位置:截取位数},只影响起始位置的判断。如下表示从倒数第8的位置往后截取4位
echo ${table_name:0-8:4} #结果: 2022
echo ${table_name: -8:4} #结果: 2022
# 可以省略截取位数,也相当于截取到末尾
echo ${table_name:0-8} # 结果: 20220106
echo ${table_name: -8} # 结果: 20220106
字符串变量的匹配截取
# 从左边开始匹配字符,删除包括匹配到的字符左边所有的字符 ${变量名#*匹配字符*匹配字符...},每写一个*匹配字符就从左边开始匹配删除一个匹配到的字符串
echo ${table_name#*_} # 结果: table_temp_20220106
echo ${table_name#*_*_} # 结果: temp_20220106
# 贪婪匹配 ${变量名##*匹配字符} 会尽可能多的删除字符串
echo ${table_name##*_} # 结果: 20220106

# 从右边开始匹配字符,删除包括匹配到的字符右边所有的字符 ${变量名%匹配字符*匹配字符*...},每写一个*匹配字符就从右边开始匹配删除一个匹配到的字符串
echo ${table_name%_*} # 结果: maomao_table_temp
echo ${table_name%_*_*} # 结果: maomao_table
# 贪婪匹配 ${变量名%%匹配字符*} 会尽可能多的删除字符串
echo ${table_name%%_*} # 结果: maomao

定义字符串变量

str='maomao_table_tmp_tmp_20220106'
字符串变量的匹配替换
# 从左边开始替换第一个匹配到的字符 ${变量名/匹配字符/替换字符}
echo ${str/tmp/TMP} # 结果: maomao_table_TMP_tmp_20220106
# 替换所有匹配到的字符 ${变量名//匹配字符/替换字符}
echo ${str//tmp/TMP} # 结果: maomao_table_TMP_TMP_20220106


这篇关于对字符串变量取值的处理一的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程