1. 程式人生 > >Bash字串操作

Bash字串操作

1.常用操作

表示式 含義
${#string} $string的長度
${string:position} $string中, 從位置position開始提取子串
${string:position:length} $string中, 從位置position開始提取長度為length的子串
${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} 如果$string的字首匹配substring,那麼就用replacement來代替匹配到的substring
${string/%substring/replacement} 如果$string的字尾匹配substring,那麼就用replacement來代替匹配到的substring

substring可以是正則表示式

2.一個例子

 #!/bin/bash
 mystr="hello world"
 echo ${#mystr} #11
 echo ${mystr:1} #ello world
 echo ${mystr:1:2} #el
 echo ${mystr#*l} #lo world
 echo ${mystr##*l} #d
 echo ${mystr%l*} #hello wor
echo ${mystr%%l*} #he echo ${mystr/l/L} #heLlo world echo ${mystr//l/L} #heLLo worLd echo ${mystr/#hello/lala} #lala world echo ${mystr/#llo/lala} #hello world echo ${mystr/%world/lala} #hello lala echo ${mystr/%worl/lala} #hello world

需要注意的是${string/#substring/replacement}${string/%substring/replacement}是字首匹配和字尾匹配,也就是說其它位置的匹配是無效的。