shell腳本中字符串截取的經常使用用法

轉載自:http://lidao.blog.51cto.com/3388056/1949831ide


假設有變量spa

var=http://www.oldboyedu.com/123.htm.code

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.
相關文章
相關標籤/搜索