shell中簡單的字串操作

來源:互聯網
上載者:User

標籤:style   blog   color   strong   div   line   log   new   

    在SHELL編程中,經常要處理一些字串變數。比如,計算長度啊、截取子串啊、字元替換啊等等,常常要用到awk、expr、sed、tr等命令。下面給大家介紹個簡單的字串處理方法,用不著嵌套複雜的子命令。

  1. ${#VALUE}:計算VALUE字串的字元數量。
  2. ${VALUE%.*}${VALUE%%.*}:刪除VALUE字串中以分隔字元“.”匹配的左邊字元,保留右邊字元。
  3. ${VALUE#*.}${VALUE##*.}:刪除VALUE字串中以分隔字元“.”匹配的右邊字元,保留左邊字元。
  4. ${VALUE/OLD/NEW}${VALUE//OLD/NEW}:用NEW子串替換VALUE字串中匹配的OLD子串。

    補充:“*”表示萬用字元,用於匹配字串將被刪除的字串。“.”表示字串中分隔字元,可以為任意一個或多個字元。“%”表示從右向左匹配,“#”表示從左向右匹配,“\”表示替換,都屬於非貪婪匹配,即匹配符合萬用字元的最短結果。與“%”、“#”和“/”類似的有“%%”、“##”和“//”,都屬於貪婪匹配,即匹配符合萬用字元的最長結果。

  1. ${VALUE:OFFSET}${VALUE:OFFSET:LENGTH}:從VALUE字串的左邊開始中截取子串。
  2. ${VALUE:0-OFFSET}${VALUE:0-OFFSET:LENGTH}:從VALUE字串的右邊開始中截取子串。

    補充:左邊第一個字元從“0”開始,右邊第一個字元從“0-1”開始。 表示位移OFFSET個字元開始,LENGTH表示要截取字元的長度。如果沒有LENGTH變數,表示位移OFFSET個字元開始到字串結束。

  1. ${VALUE:-WORD}:當變數未定義或者值為空白時,返回值為WORD的內容,否則返回變數的值。
  2. ${VALUE:=WORD}:當變數未定義或者值為空白時,返回WORD的值的同時並將WORD賦值給VALUE,否則返回變數的值。
  3. ${VALUE:+WORD}:當變數已賦值時,其值才用WORD替換,否則不進行任何替換。
  4. ${VALUE:?MESSAGE}:當變數已賦值時,正常替換。否則將訊息MESSAGE送到標準錯誤輸出(若此替換出現在SHELL程式中,那麼該程式將終止運行)。

    補充:WORD可以為一個字串,也可以為一個變數。當為變數時,需要用“$”引用該變數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.