转载自:http://www.jb51.cc/article/p-xtcgohei-bms.html
假设有变量
var=http://www.oldboyedu.com/123.htm.
1. # 号截取,删除左边字符,保留右边字符。
变量:var=http://www.oldboyedu.com/123.htm echo${var#*//} 其中var是变量名,#号是运算符,*//表示从左边开始删除第一个//号及左边的所有字符 即删除http:// 结果是:www.oldboyedu.com/123.htm
2. ## 号截取,删除左边字符,保留右边字符。
变量:var=http://www.oldboyedu.com/123.htm echo${var##*/} ##*/表示从左边开始删除最后(最右边)一个/号及左边的所有字符 即删除http://www.oldboyedu.com/ 结果是:123.htm
3. %号截取,删除右边字符,保留左边字符
变量:var=http://www.oldboyedu.com/123.htm echo${var%/*} %/*表示从右边开始,删除第一个/号及右边的字符 即删除/123.htm 结果是:http://www.oldboyedu.com
4. %% 号截取,删除右边字符,保留左边字符
变量:var=http://www.oldboyedu.com/123.htm echo${var%%/*} %%/*表示从右边开始,删除最后(最左边)一个/号及右边的字符 即删除//www.oldboyedu.com/123.htm. 结果是:http:
5. :x:y格式表示取字符串信息,从左边第x+1个字符开始,及取出字符的y个数
变量:var=http://www.oldboyedu.com/123.htm echo${var:0:5} 其中的0表示左边第一个字符开始,5表示字符的总个数。 即取值从字符串的0字符取值h,取5个字符,到字符:(冒号) 结果是:http:
6. :y格式表示取字符串信息,从左边第y+1个字符开始,一直到结束。
变量:var=http://www.oldboyedu.com/123.htm echo${var:7} 其中的7表示左边第8个字符开始,一直到结束。 即取值从字符串的第7位/之后取值,知道字符串结束 结果是:www.oldboyedu.com/123.htm
7. :x-y:z格式表示取字符串信息,其中x-y表示字符串的取值范围,从右边第x-y位个字符取值,及取字符的z个字符数
变量:var=http://www.oldboyedu.com/123.htm echo${var:0-7:3} 其中的0-7表示右边算起第七个字符开始,3表示字符的个数。 即取值0-7从字符串右边取7位,然后再从左边取前3位 PS:特殊说明 ①当1-7时,表示0-7取7位,但从最左边的取值中减去1位,即var=9876543210-7=9876543211-7=87654321 ②当7-7时,表示0-7取7位,但从最左边的取值中减去7位,即var=9876543210-7=9876543217-7=987654321 ③当取值的范围小于输出的字符数时,将全部输出,即var=9876543210-3=321取4位时,显示321 结果是:123
8. :x-y格式表示取字符串信息,其中x-y表示字符串的取值范围,从右边第0个字符开始,一直到y位结束。
变量:var=http://www.oldboyedu.com/123.htm echo${var:0-7} 表示从右边第七个字符开始,一直到结束。 即取值0-7从字符串右边取7位 结果是:123.htm 注:(左边的第一个字符是用单个数字字符0表示,右边的第一个字符用0-1表示).com/123.htm.原文链接:https://www.f2er.com/bash/390828.html