shell字符串截取的6种方法


0, 为了方便演示,我们先定义一个变量

1
string=https://x-pua.cn/index.html

1, “#”号截取,删除左边字符,保留右边字符

1
2
3
4
[root@stark ~]# echo ${string#*//}
x-pua.cn/index.html
[root@stark ~]# echo ${string#*/}
index.html

2, “%”号截取,删除右边字符,保留左边字符

1
2
3
4
[root@stark ~]# echo ${string%/*}
https://x-pua.cn
[root@stark ~]# echo ${string%//*}
https:

3, 从左边第几个字符开始,以及截取字符的个数

1
2
3
4
5
6
[root@stark ~]# echo ${string:17:10}
index.html
[root@stark ~]# echo ${string:0:5}
https
[root@stark ~]# echo ${string:8:8}
x-pua.cn

4, 从左边第几个字符开始,一直到结束

1
2
3
4
[root@stark ~]# echo ${string:17}
index.html
[root@stark ~]# echo ${string:8}
x-pua.cn/index.html

5, 从右边第几个字符开始,以及截取字符的个数

– 0-4表示从右边算起第4个字符开始,4代表截字符的个数 –

1
2
3
4
[root@stark ~]# echo ${string:0-19:8}
x-pua.cn
[root@stark ~]# echo ${string:0-4:4}
html

6, 从右边的第几个字符开始,一直到结束

1
2
3
4
[root@stark ~]# echo ${string:0-4}
html
[root@stark ~]# echo ${string:0-19}
x-pua.cn/index.html