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

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

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

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

lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾_第1张图片

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

举例:

[root@server0 ~]# phone='13788768897'
[root@server0 ~]# echo ${phone/3/@}
1@788768897
[root@server0 ~]# echo ${phone//8/*}

137**76**97







按条件掐头去尾
掐头:

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

    从右向左,最长匹配删除

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

[root@server0 ~]# phone='13788768897'
[root@server0 ~]# echo ${phone#*8}
8768897
[root@server0 ~]# echo ${phone##*8}
97
[root@server0 ~]# echo ${phone%8*}
13788768
[root@server0 ~]# echo ${phone%%8*}
137

lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾_第2张图片



你可能感兴趣的:(linux系统知识收纳录)