您的位置:首页 > 其它

字符串截取、切割、替换

2017-12-26 20:58 148 查看
字符串截取及切割
字符串截取:
方法一:使用${}表达式,起始编号是从0开始计数。

格式:${变量名:起始位置:长度}

例:x=abcdefghj
(012345678..编号)
echo${x:0:6} (起始位置可以不从0取)
输出结果:abcdef

方式二:使用expr substr 起始编号是从1开始计数。

格式:expr substr "变量名"  起始位置 长度

例:x=abcdefghj
(123456789..编号)
expr substr "x"  2  6 (起始位置可以不从1取)
输出结果:bcdefg

方式三:使用cut分隔工具 起始编号从1开始

格式:echo 变量名 |cut -b 起始位置-结束位置

例:x=abcdefghj
(123456789..编号)
echo $x |cut -b 1-6 (起始位置可以不从1取)
输出结果:abcdef
echo $x |cut -b 8- 从第8个字符截取到末尾
输出结果:hj
echo $x |cut -b 9 只截取单个字符
输出结果:j

字符串的替换
格式:${变量名/源值/新值}

例:y="Tarena Grop"
echo ${y/r/qqq}
(将第一个r替换为qqq,/替换第一个匹配结果)
输出结果:Taqqqena Grop

例:y="Tarena Grop"
echo ${y//r/qqq}
(将全部r替换为qqq,//替换全部匹配结果)
输出结果:Taqqqena Gqqqop

字符串的匹配删除
1.从左向右,最短匹配删除。
格式:${变量名#*关键词} 删除从左侧第一个字符到最近的关键字

例:x="/var/spool/mail/root"
echo ${x#*oo}
输出结果:l/mail/root

2.从左向右,最长匹配删除。
格式:${变量名##*关键词} 删除从左侧到最远的关键词

例:x="/var/spool/mail/root"
echo ${x##*oo}
输出结果:t

3.从右向左,最短匹配删除。
格式:${变量名%关键词*} 删除从右侧第一个字符到最近的关键字

例:x="/var/spool/mail/root"
echo ${x%oo*}
输出结果:/var/spool/mail/r

4.从右向左,最长匹配删除。
格式:${变量名%%关键词*} 删除从右侧到最远的关键字

例:x="/var/spool/mail/root"
echo ${x%%oo*}
输出结果:/var/sp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串 截取 切割
相关文章推荐