shell中的字串操作——字串的切割總結
前言
在python和java等語言中,對字串操作大多都是呼叫函式來完成,但是像shell這種使用c語言編寫的程式,對字串的切割顯得更加簡單。shell指令碼中對字串的切割有很多種,在這裡我將我熟悉,好用的方法給總結出來,分享給大家,希望能夠對你們的學習和工作起到幫助。
1、${var#}
#! /bin/bash
var=“www.google.com”
echo ${var#*.*. }
echo ${var#*.}
輸出結果為:
com
google.com
在這裡 ${var#} 意思是從前向後(從左向右)擷取,如上面的 ${var#*.*.} 的意思是從左到右擷取第二個 .
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 都可以對字串進行擷取操作,如果有什麼疑問,或者我寫的有什麼不足之處,歡迎大家留言告知。