shell的字符串截取

版权声明:本文为博主原创文章,未经博主允许不得转载。 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




猜你喜欢

转载自blog.csdn.net/LLZK_/article/details/66972377