首先先声明一个变量str,下面演示以该变量为例:
str='https://www.baidu.com/about.html'
1.#号截取,删除左边字符,保留右边字符
echo ${str#*//}
说明:
str
为变量#
号是运算符*//
表示从左边开始删除第一个//
号及左边的所有字符
结果:www.baidu.com/about.html
2.## 号截取,删除左边字符,保留右边字符
echo ${str##*/}
说明:
##*/
表示从左边开始删除最后(最右边)一个/
号以及左边所有的字符
结果:about.html
3.%号截取,删除右边字符,保留左边字符
echo ${str%/*}
说明:
%/*
表示从右边开始,删除第一个/
以及右边所有字符
结果:https://www.baidu.com
4.%% 号截取,删除右边字符,保留左边字符
echo ${str%%/*}
说明:
%%/*
表示从右边开始,删除最后(最左边)一个/
号以及右边的所有字符
结果:https:
5.截取从左边指定位置开始,以及指定截取的字符个数
echo ${str:0:5}
说明:
- 0表示从第一个字符开始截取,5表示截取5个字符
结果:https
6.截取从左边指定位置开始,直到结束
echo ${str:8}
说明:
- 表示从左边第9个字符开始(由于下标是从0开始),一直到结束。
结果:www.baidu.com/about.html
7.截取从右边指定位置开始,以及指定截取的字符个数
echo ${str:0-10:10}
说明:
- 0-10表示从右边第10个字符开始,截取右边10个字符的长度。
结果:about.html
说明,如果截取的右边字符超过右边的总长度,那么也是返回右边的所有字符,如:
echo ${str:0-10:100}
结果:about.html
8.截取从右边指定位置开始,直到结束
echo ${str:0-10}
说明:
- 表示从右边第10个字符位置开始,直到结束
结果:about.html