字符串截取及切割
字符串截取:
方法一:使用${}表达式,起始编号是从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
字符串截取、切割、替换
原创
©著作权归作者所有:来自51CTO博客作者期待美好的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:shell 循环和判断结构
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
cocos2d-x中的动作替换成Cocos creator 3.8中的Tween动画
文章简单介绍从Cocos2d-x向Cocos Creator转移过程中,原先的Action动作在Creator中如何实现。
Cocos Creator Cocos2d-x 动作 Tween -
java中字符串拼接的多种方式
java中字符串拼接的多种方式
java 字符串拼接 -
java 字符串将冒号替换成空 java特殊字符替换空格
0.导引作为软件程序员/工程师,对Java中默写字符串的特定替换应该都比较熟悉。而这都是以增加字符串的副本为前提的——String是不可变的,必须重新按照一定的规则重新赋值一份。那现在有这样一个面试题要求:编写一个方法,用'%20'替换字符串中的所有空格。您可以假设字符串末尾有足够的空间来容纳额外的字符,并且给定了字符串的“真实”长度,即两头除去空格的字符串。示例如下:输入字符串: "M
java 字符串将冒号替换成空 java 字符数组 java 替换指定位置的字符 java 空格 java 空格字符