Shell處理字元串常用技巧之截取子串
在Shell程式設計中,經常要處理一些字元串變量。
下面給大家整理Shell處理字元串常用技巧之截取子串。
請參考:Shell處理字元串常用技巧之分割、替換字元串整理
(1)、${VALUE:OFFSET}或${VALUE:OFFSET:LENGTH}
從VALUE字元串的左邊開始中截取子串。
(2)、${VALUE:0-OFFSET}或${VALUE:0-OFFSET:LENGTH}
從VALUE字元串的右邊開始中截取子串。
解釋:
(1) 左邊第一個字元從0開始
(2) 右邊第一個字元從0-1開始。
表示偏移OFFSET個字元開始,LENGTH表示要截取字元的長度。
如果沒有LENGTH變量,表示偏移OFFSET個字元開始到字元串結束。
案例:
(1)、${VALUE:OFFSET}或${VALUE:OFFSET:LENGTH}
[[email protected] shellFiles]$ name=mynameisodysee
//從左到右
//偏移量為2,即:從第三個字元開始截到end
[[email protected] shellFiles]$ echo ${name:2}
nameisodysee
//從左到右比對
//偏移量為2,截取長度為4
//即:從第三個字元開始截後面的4個字元結束
[[email protected] shellFiles]$ echo ${name:2:4}
name
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyYiJjYxcjN2ADMmVWNhNGO5Q2M0gTZ2kDZ2UDZ5E2Y38CXldWYtlWLjdGcvwVZnJXYs9CXt92YuAHdhR3cw5SMw9CXvwlOzBHd0hWPsJXdmYDM3YjZkJGNzQDNl1SOhRGOtETMiVWLmJjM10COhhTOjF2M20DZpV3ZmITPlBXe0ZyPldWYtl2LcdXZpZ3Lc12bj5SZjVjL5h3byBnLxATLn1Wavw1LcpDc0RHaiojIsJye.jpg)
(2)、${VALUE:0-OFFSET}或${VALUE:0-OFFSET:LENGTH}
//從右到左比對
//偏移量為8,即從右到左截取8個字元
[[email protected] shellFiles]$ name=mynameisodysee
[[email protected] shellFiles]$ echo ${name:0-8}
isodysee
//從右到左比對
//偏移量為8,即從右到左截取8個字元
//length為2,即從左到右截取8個字元的前兩個(這個地方比較拗腦)
[[email protected] shellFiles]$ echo ${name:0-8:2}
is
總結:
關于以上的字元串操作,有點拗腦,不太容易記憶。
如果有什麼好的記憶方式,望大家不吝賜教。
下一篇:Shell處理字元串常用技巧之截取子串
歡迎大家給予寶貴的意見或者建議。
歡迎大家補充或者共享一些其他的方法。
感謝支援。