Bash字串操作
阿新 • • 發佈:2019-02-04
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/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}是字首匹配和字尾匹配,也就是說其它位置的匹配是無效的。