Linux 字符串切片的几种方式
假设变量 var=“https://www.163.com/index.html”
一、'#' 截取,保留右边字符,删除左边字符
1 echo ${var#*//}
var : 变量名;
# : 运算符,匹配左边第一个匹配的字符或字符串;
#*// : ‘*’ 在左边表示从左边开始删除第一个 ‘//’ 及左边所有的字符,* 在右侧是无效的;
显示结果:www.163.com/index.html
二、‘##’ 截取, 保留右边字符,删除左边字符
1 echo ${var##*/}
## : 运算符, 匹配到左边最后一个(右边第一个)匹配的字符或字符串;
##*/: 从左边开始删除最后边的‘/'及左边所有的字符;
显示结果:index.html
三、'%'截取, 保留左边字符,删除右边字符
1 echo ${var%/*}
% : 运算符, 匹配右边第一个匹配的字符或字符串;
%/* : 删除右边第一个’/‘ 及右边所有字符;
显示结果: https://www.163.com
四、'%%'截取, 保留左边字符,删除右边字符
echo ${var%%/*}
% : 运算符, 匹配右边最后一个(左边第一个)匹配的字符或字符串;
%%/* : 删除右边最后一个’/‘ 及右边所有字符;
显示结果: https:
五、':' 截取
# 从开头第9个字符开始到结尾,结果:www.163.com/index.html echo ${var:8} # 从开头匹配取5个字符,结果: https echo ${var:0:5} # 从右边第4个字符开始到结尾, 结果: html echo ${var:0-4} # 从右边第10个字符开始取5个字符, 结果: index echo ${var:0-10:5}