版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LLZK_/article/details/66972377
1、#号截取
格式:
${var#*c}
将截取后的字符串赋给a,#号是截取运算符,*号后跟提示字符c,表示将c之前的(包含c)的字符串都截取丢弃,保留剩下的。
例:
var='http://www.baidu.com'
a=${var#*/}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
/www.baidu.com
2、##号截取
格式:
${var##*c}
从var最左边开始删除最后一个c以及c左边的所有内容。
eg:
var='http://www.baidu.com//haha.html'
a=${var##*/}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
haha.html
3、%号截取
${var%c*}
从var的最右边开始,删除最后一个c以及其右边的所有内容。
eg:
var='http://www.baidu.com//haha.html'
a=${var%.*}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
http://www.baidu.com//haha
4、%%截取
${var%%c*}
从var的最左边开始,删除第一个c以及其右边的所有内容
eg:
var='http://www.baidu.com//haha.html'
a=${var%%.*}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
http://www
5、从左向右按下标和个数截取
${var:index:n}
index表示下标,表明起始位置,第一个字符的下标为0。n是截取的个数
表示从index 的位置开始从左往右截取并保留n个字符,其它丢弃。
eg:
var='http://www.baidu.com//haha.html'
a=${var:0:10}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
http://www
6、从左边下标为index开始,到结束
${var:index}
从index位置开始,到结束,前面的全部丢弃
eg:
var='http://www.baidu.com//haha.html'
a=${var:10}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
.baidu.com//haha.html
7、倒序下标,从右边第n个开始,截取num个字符
格式:
${var:0-6:5}
从倒数第6个开始,截取5个字符。倒序用0-n表示
eg:
var='http://www.baidu.com//haha.html'
a=${var:0-6:5}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
a.htm
8、从右边第n个字符开始,一直到结束
${var:0-n}
eg:
var='http://www.baidu.com//haha.html'
a=${var:0-6}
echo $a
结果:
[lzk@localhost 33_class_3_26_shell]$ bash test.sh
a.html