标签:字符 匹配 变量 截取 echo 字符串 table 取值 name
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
标签:字符,匹配,变量,截取,echo,字符串,table,取值,name 来源: https://blog.csdn.net/weixin_45708341/article/details/122355584
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。