shell從指定位置截取字符串,持續更新中......


一、從指定位置開始截取

這種方式需要兩個參數:除了指定起始位置,還需要截取長度,才能最終確定要截取的字符串。

 

既然需要指定起始位置,那么就涉及到計數方向的問題,到底是從字符串左邊開始計數,還是從字符串右邊開始計數。答案是 Shell 同時支持兩種計數方式。

1) 從字符串左邊開始計數

如果想從字符串的左邊開始計數,那么截取字符串的具體格式如下:

${string: start :length}

其中,string 是要截取的字符串,start 是起始位置(從左邊開始,從 0 開始計數),length 是要截取的長度(省略的話表示直到字符串的末尾)。

 

例如:

url="c.biancheng.net"
echo ${url: 2: 9}
結果為biancheng。

 

再如:

url="c.biancheng.net"
echo ${url: 2} #省略 length,截取到字符串末尾
結果為biancheng.net。

2) 從右邊開始計數

如果想從字符串的右邊開始計數,那么截取字符串的具體格式如下:

${string: 0-start :length}

同第 1) 種格式相比,第 2) 種格式僅僅多了0-,這是固定的寫法,專門用來表示從字符串右邊開始計數。

 

這里需要強調兩點:

從左邊開始計數時,起始數字是 0(這符合程序員思維);從右邊開始計數時,起始數字是 1(這符合常人思維)。計數方向不同,起始數字也不同。
不管從哪邊開始計數,截取方向都是從左到右。

例如:

url="c.biancheng.net"
echo ${url: 0-13: 9}
結果為biancheng。從右邊數,b是第 13 個字符。

 

再如:

url="c.biancheng.net"
echo ${url: 0-13} #省略 length,直接截取到字符串末尾
結果為biancheng.net。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM