lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾

字符串处理
子串截取 三种方法
方法一:${变量名:起始位置:长度}
方法二:expr subsrt “$变量名” 起始位置 长度

方法三:echo $变量名 | cut -b 起始位置-结束位置

[[email protected] ~]# phone='13788768897'
[[email protected] ~]# echo ${#phone}  显示字符串的内字符的个数
11
[[email protected] ~]# echo ${phone:0:6}  截取字符串从0为开始从左到右的6为数字
137887
[[email protected] ~]# echo $phone | cut -b 1-4  截取字符串从1到4之间的字符串
1378
[[email protected] ~]# expr substr "$phone" 1 3 截取字符串从1到3之间的字符串
137
[[email protected] ~]# echo $phone | cut -b 1,4,8 截取字符串从1,4,8位置上的字符
188

lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾

字符串的替换
语法格式:
${变量名/old/new} 只替换第一个匹配结果
${变量名/old/new} 替换全部匹配结果

举例:

[[email protected] ~]# phone='13788768897'
[r[email protected] ~]# echo ${phone/3/@}
[email protected]
[[email protected] ~]# echo ${phone//8/*}

137**76**97

lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾






按条件掐头去尾
掐头:

       从左向右,最短匹配删除
    ${变量名#*关键词 }
    从左向右,最长匹配删除
        ${变量名##*关键词 }
去尾:
       从右向左,最短匹配删除
${变量名%关键词*}   

    从右向左,最长匹配删除

${变量名%%关键词*}

[[email protected] ~]# phone='13788768897'
[[email protected] ~]# echo ${phone#*8}
8768897
[[email protected] ~]# echo ${phone##*8}
97
[[email protected] ~]# echo ${phone%8*}
13788768
[[email protected] ~]# echo ${phone%%8*}
137

lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾