字符串处理
子串截取 三种方法
方法一:${变量名:起始位置:长度}
方法二: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
字符串的替换
语法格式:
${变量名/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