Shell脚本8种字符串截取方法
假设有变量: var=http://blog.knero.cn/test.html
#号截取,删除左边字符,保留右边字符示例
var=http://blog.knero.cn/test.html
sub=${var#*/}
echo $sub
输出结果
/blog.knero.cn/test.html
其中var是变量名,**#号是运算符,/* 表示从左边开始删除第一个**/号及左边的所有字符
即删除http:/**
结果是 :/blog.knero.cn/test.html
示例
var=http://blog.knero.cn/test.html
sub=${var##*/}
echo $sub
输出结果
test.html
其中var是变量名,**##号是运算符,/* 表示从左边开始删除最后一个**/号及左边的所有字符
即删除http://blog.knero.cn/**
结果是 :test.html
%号截取,删除右边字符,保留左边字符示例
var=http://blog.knero.cn/test.html
sub=${var%/*}
echo $sub
输出结果
http://blog.knero.cn
其中var是变量名,**%号是运算符,/*** 表示从右边开始删除第一个**/号及右边的所有字符
即删除test.html**
结果是 :http://blog.knero.cn
示例
var=http://blog.knero.cn/test.html
sub=${var%%/*}
echo $sub
输出结果
http:
其中var是变量名,**%%号是运算符,/*** 表示从右边开始删除最后一个**/号及右边的所有字符
即删除//blog.knero.cn/test.html**
结果是 :http:
示例
var=http://blog.knero.cn/test.html
sub=${var:0:5}
echo $sub
sub=${var:7}
echo $sub
输出结果
http:
blog.knero.cn/test.html
${var:0:5}其中的0表示左边第一个字符开始, 5表示字符的总个数。
结果是:http:
${var:7}指从左边index第几个字符开始到结束
示例
var=http://blog.knero.cn/test.html
sub=${var:0-9:4}
echo $sub
sub=${var:0-9}
echo $sub
输出结果
test
test.html
${var:0-9:4}其中的0-9表示左边第9个字符开始, 4表示截取字符个数,如果没有就是到结束