Shell 編程 <字符串處理>

字符串切片:
    ${var:offset:number}              #offset表示從哪一個字符開始,number表示取幾個字符
        url=www.baidu.com
        echo ${url:4:5}  -> baidu
        echo ${url:4}  ->baidu.com
    ${var: -number}                  #表示從右往左取幾個字符,注意」 - 「前面必須有空格
 
基於模式的取串:
    ${var#*word}                    #表示從左至右,刪除到第一個被word匹配字符中間全部的字符串
        url=www.baidu.com
        echo  ${url#*.}   ->baidu.com
     
    ${var##*word}                   #表示從左至右,刪除到最後一個被word匹配字符中間全部的字符串
        url=www.baidu.com
        echo  ${url##*.}   ->com
     
    ${var%word*}                      #表示自右往左,刪除到第一個匹配word的字符串
        path=’/etc/selinux/config’
        echo ${path%/*} -> /etc/selinux #取路徑名
    ${var%%word*}                      #表示自右往左,刪除到最後一個匹配word的字符串
     
     
     
查找替換:
 
${var/pattern/substr}                   #表示將被pattern第一次匹配的字符替換爲substr
    url=www.baidu.com   
    echo ${url/www/mail}  ->mail.baidu.com
 ${var//pattern/substr}                   #表示此行中全部被pattern匹配的字符都替換爲subtr
    url=www.baidu.com.cc
    echo=${url//./_}   ->www_baidu_com_cc
 
 ${var/#pattern/substr}   #行首錨定,只匹配出如今行首的字符
 ${var/%pattern/substr}   #行位錨定,只匹配出如今行尾的字符
 
字符刪除:
    ${var/pattern} #刪除第一次被pattern匹配的字符
    ${var//pattern} #刪除整行全部被pattern匹配的字符
    ${var/#pattern} #刪除行首被pattern匹配的字符
    ${var/%pattern} #刪除行尾被pattern匹配的字符
相關文章
相關標籤/搜索