1. 程式人生 > >shell中的字串操作——字串的切割總結

shell中的字串操作——字串的切割總結

前言

在python和java等語言中,對字串操作大多都是呼叫函式來完成,但是像shell這種使用c語言編寫的程式,對字串的切割顯得更加簡單。shell指令碼中對字串的切割有很多種,在這裡我將我熟悉,好用的方法給總結出來,分享給大家,希望能夠對你們的學習和工作起到幫助。

1、${var#}

#! /bin/bash
var=“www.google.com
echo ${var#*.*. }
echo ${var#*.}
輸出結果為:
com
google.com

在這裡 ${var#} 意思是從前向後(從左向右)擷取,如上面的 ${var#*.*.} 的意思是從左到右擷取第二個 .

後面的所有內容,也就是 com${var#*.} 也就是擷取第一個點後面的所有內容, google.com。(這裡面的 * 是匹配任意多個字元的意思,正則匹配)

2、${var##}

#! /bin/bash
var=“www.google.com
echo ${var##*.}
輸出結果為:
com

${var##} 是從左向右擷取最後一個 . 後(右邊)的所有內容。

3、${var%}

#! /bin/bash
var=“www.google.com
echo ${var%.*.*}
echo ${var%.*}
輸出結果為:
www
www.google

用法 ${var##} 和相似,不過 ${var%} 是從後往前(從右向左)擷取,第一個為從右向左擷取第二個 . 左邊的內容 www,第二個是從右向左擷取第一個 . 左邊的所有內容 www.google

4、${var%%}

#! /bin/bash
var=“www.google.com
echo ${var%%.*}
輸出結果為:
www

${var%%} 是從右向左擷取最後一個 . 後(左邊)的所有內容。

5、步長擷取法 ${var:num1:num2}

#! /bin/bash
var=“www.google.com
echo ${var:2:5}
echo ${var:0-5:3}
echo ${var:6}
輸出結果為:
ww.go
.co

oogle.com

${var:2:5} 從第二位開始(包括第二位)擷取5個字元
${var:0-5:3} 從倒數第五位開始(不包括倒數第五位)擷取3個字元(可以把0-5看成-5,同樣1-6也是這樣,看成-5,結果和0-5一樣)
${var:6} 從第六位開始(包括第六位)擷取剩餘所有字元

結語

這裡為大家展示的是最常用的幾種方法,還有很多對字串的擷取方法,如 awk、cut、sed、grep 都可以對字串進行擷取操作,如果有什麼疑問,或者我寫的有什麼不足之處,歡迎大家留言告知。