linux下变量值截取指定长度

- linux系统管理

用#号截取,删除左边字符,保留右边字符

一个#号截取

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符,即删除 https://

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var#*//}
www.example.com/index.html
[root@imzcy ~]#


两个#号截取

echo ${var##*/}

其中 ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符,即删除 https://www.example.com/

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var##*/}
index.html
[root@imzcy ~]#




用%截取,删除右边字符,保留左边字符

一个%截取

echo ${var%/*}

其中 %/* 表示从右边开始,删除第一个 / 号及右边的字符,即删除 /index.html

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var%/*}
https://www.example.com
[root@imzcy ~]#


两个%截取

echo ${var%%/*}

其中 %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符,即删除 //www.example.com/index.html

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var%%/*}
https:
[root@imzcy ~]#




截取指定个数字符

从左边开始

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var:0:5}
https
[root@imzcy ~]#


从右边开始

其中的 0-10 表示右边算起第十个字符开始,5 表示字符的个数。

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var:0-10:5}
index
[root@imzcy ~]#




截取指定字符到结束

从左边第几个字符开始到结束

其中的 8 表示左边第9个字符开始,一直到结束。

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var:8}
www.example.com/index.html
[root@imzcy ~]#


从右边第几个字符开始到结束

表示从右边第四个字符开始,一直到结束。

[root@imzcy ~]# var=https://www.example.com/index.html
[root@imzcy ~]# echo ${var:0-4}
html
[root@imzcy ~]#