變量長度 / 刪除字符串

  1. 字符串的長度(     $var中字符的個數)。對任意數組 array,  ${#array} 返回數組中第一個元素的長度。數組

如下狀況例外:
    ${#*} 和 ${#@} 返回位置參數的個數。
任意數組array, ${#array[*]} 和${#array[@]}返回數組中元素的個數。bash

2.   ${var%Pattern}, ${var%%Pattern}    
    ${var%Pattern} 刪除$var 後綴部分匹配到的最短長度的 $Pattern   。
    ${var%%Pattern} 刪除$var 後綴部分匹配到的最長長度的 $Pattern  .字符串

#!/bin/bash
stringZ=abcABC123ABCabc
pattern=*C
pattern1=*b
echo "${stringZ#$pattern}"   #123ABCabc
echo ${stringZ##$pattern}   #abc
echo "${stringZ#$pattern1}" #bcABC123ABCabc
echo ${stringZ##$pattern1}  #cstring

3.       ${var%Pattern},    ${var%%Pattern}    
     ${var%Pattern}刪除$var後綴部分匹配到的最短長度的$Pattern。
    ${var%%Pattern}刪除$var後綴部分匹配到的最長長度的$Pattern。it

#!/bin/bash
stringZ=abcABC123ABCabc
pattern=C*
pattern1=b*
echo "${stringZ%$pattern}"  #abcABC123AB
echo ${stringZ%%$pattern}   #abcAB
echo "${stringZ%$pattern1}" #abcABC123ABCa
echo ${stringZ%%$pattern1}  #a
要求是pattern,也就是RE,必須指定一個從左到右,或從右到左的刪除規則,最好不要是字符串。如果只刪除一個字符,也可使用一個字符的規則。字符

4.    ${var/Pattern/Replacement}替換var中第一個匹配到的Pattern爲Replacement.參數

       ${var//Pattern/Replacement}全局替換.替換var 中全部匹配到的Pattern爲Replacement.printf

在Replacement爲空時,表示刪除。ab

5.  set ,能夠強制解析參數組。

    #!/bin/bash -efor planet in "Mercury 36" "Venus 67" "Earth 93" "Mars 142" "Jupiter 483"do set  -- $planet      printf "$1        $2\n"doneexit    0

相關文章
相關標籤/搜索