shell中的子串


字符串長度
${#string}
expr length $string
expr "$string" : '.*'

從字符串開始的位置匹配子串的長度
expr match "$string" '$substring'
$substring 是一個正則表達式
expr "$string" : '$substring'
$substring 是一個正則表達式


索引
expr index $string $substring
匹配到子串的第一個字符的位置.

提取子串
${string:position}

在 string 中從位置$position 開始提取子串.
如果$string 爲"*"或"@",那麼將提取從位置$position 開始的位置參數,[1]

${string:position:length}

在 string 中從位置$position 開始提取$length 長度的子串.

如果$string 參數爲"*"或"@",那將最大的提取從$position 開始的$length 個位置參數.


expr substr $string $position $length
在 string 中從位置$position 開始提取$length 長度的子串.


expr match "$string" '\($substring\)'
從$string 的開始位置提取$substring,$substring 是一個正則表達式.
expr "$string" : '\($substring\)'
從$string 的開始位置提取$substring,$substring 是一個正則表達式.


子串削除
${string#substring}
從$string 的左邊截掉第一個匹配的$substring
${string##substring}
從$string 的左邊截掉最後一個個匹配的$substring


${string%substring}
從$string 的右邊截掉第一個匹配的$substring
${string%%substring}
從$string 的右邊截掉最後一個匹配的$substring


子串替換
${string/substring/replacement}
使用$replacement 來替換第一個匹配的$substring.
${string//substring/replacement}
使用$replacement 來替換所有匹配的$substring.


${string/#substring/replacement}
如果$substring 匹配$string 的開頭部分,那麼就用$replacement 來替換$substring.
${string/%substring/replacement}
如果$substring 匹配$string 的結尾部分,那麼就用$replacement 來替換$substring.
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章