​老男孩教育每日一题-第98天-shell知识点:shell脚本中字符串截取的常用用法?

答案参考:

假设有变量
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=987654321   0-7=987654321  1-7=87654321  
②当7-7时,表示0-7取7位,但从最左边的取值中减去7位,即var=987654321   0-7=987654321  7-7=987654321
③当取值的范围小于输出的字符数时,将全部输出,即var=987654321    0-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.

备注

今天是每日一题陪伴大家的第98天期待你的进步

对于题目和答案的任何疑问,请在博客评论区留言
往期题目索引

http://lidao.blog.51cto.com/3388056/1914205


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1949831


上一篇:Scala Learning(2): map, flatMap, filter与For表达式


下一篇:115_《Delphi信息系统开发实例精选》