1. index(原字符串,匹配字符串)
若「原字符串」含有「匹配字符串」,則返回其在原字符串中第一次出現的位置,若不曾出現則返回0。
例 :
# awk 'BEGIN { print index("33080801030","0"); print index("3380801030","0"); }' 3 4
2.length(字符串)
返回參數「字符串」的長度。
範例:
# awk 'BEGIN {print length("chenss")}' 6
3.match(原字符串,正則表達式)
awk會在「原字符串」中匹配合乎「正則表達式」的字符串.若匹配到的字符串有多個, 則以「原字符串」中最左側的字符串爲準。
若是匹配到字符串後,match函數則會返回」正則表達式「匹配到的字符串的位置。
並設定RSTART變量爲」匹配字符串「在」原字符串「中的位置,若未匹配到則等於0 ;
設定RLEGTH變量爲匹配的字符串的長度, 若未匹配則等於-1。
範例:
# awk 'BEGIN { match("The best preparation for tomorrow is doing your best today",/best/); print RSTART; print RLENGTH; }' 5 4
範例:
# awk 'BEGIN { match("The best preparation for tomorrow is doing your best today",/chenss/); print RSTART; print RLENGTH; }' 0 -1
4.split(原字符串,數組名稱,分隔字符)
awk將依所指定的「分隔字符」來分隔「原字符串」,並以指定的「數組名稱」記錄各個被分隔的字段。若是第三個參數沒有提供,awk就默認使用當前FS值。
範例:
# awk 'BEGIN { T="The best-preparation-for-tomorrow is doing your best-today"; split(T,Arry,"-"); print Arry[2]; split(T,Arry); print Arry[2]; }' preparation best-preparation-for-tomorrow
5.sprintf(格式字符串,項1,項2,...)
用法與printf()相似. 不一樣的是sprintf()將打印出的結果當成一個字符串返回。通常用sprintf()來格式化字符串。
範例:
# awk 'BEGIN { print sprintf("%.2f",88); print sprintf("%.x",15); }' 88.00 f
6.sub(正則表達式,新字符串,原字符串)
sub( )將「原字符串」中第一個匹配「正則表達式」的字符串替換成「新字符串」,"新字符串"中可用"&"來追加字符串 ;當第二個參數爲空字符串("")時,sub()將執行的是去除「正則表達式」所匹配的最左側字符串。
sub( )中第三個參數(原字符串)若未指定,則其預設值爲$0.
範例:
# awk 'BEGIN { T="The best-preparation-for-tomorrow is doing your best-today"; sub(/-/,".",T); print T; sub(/today/,"&!",T); print T; sub(/-/,"",T); print T }' The best.preparation-for-tomorrow is doing your best-today The best.preparation-for-tomorrow is doing your best-today! The best.preparationfor-tomorrow is doing your best-today!
經過 sub() 與 match() 的配合使用,可取出全部匹配的字符串。
範例:
# awk 'BEGIN { T="p12-p34 p56-p78"; while(match(T,/[0-9]+/) > 0) { print substr(T,RSTART,RLENGTH); sub(/[0-9]+/,"",T); } }' 12 34 56 78
7.gsub(正則表達式,替換的新字符串,原字符串 )
用法與sub()函數同樣, 惟一不一樣點是 gsub函數使全部被正則表達式匹配的字符串都發生替換
範例:
# awk 'BEGIN { T="The best-preparation-for-tomorrow is doing your best-today"; gsub(/-/,".",T); print T; gsub(/^/,"&BEGIN: ",T); print T; gsub(/best/,"&+",T); print T }'
8.substr(字符串,起始位置,截取長度)
返回從起始位置起,指定長度的字符串;若未指定長度, 則返回從起始位置到字符串末尾的子字符串。
範例:
# awk 'BEGIN { T="The best-preparation-for-tomorrow is doing your best-today"; print substr(T,4,17); print substr(T,4); }' best-preparation best-preparation-for-tomorrow is doing your best-today
9.tolower(字符串)
參數「字符串」中的大寫字母替換成小寫
範例:
# awk 'BEGIN {print tolower("AbCd")}' abcd
10.toupper(字符串)
範例:
參數「字符串」中的小寫字母替換成大寫
# awk 'BEGIN {print toupper("AbCd")}' ABCD