awk提供了許多強大的字符串函數,見下表:
awk內置字符串函數
gsub(r,s) 在整個$0中用s替代r
gsub(r,s,t) 在整個t中用s替代r
index(s,t) 返回s中字符串t的第一位置
length(s) 返回s長度
match(s,r) 測試s是否包含匹配r的字符串
split(s,a,fs) 在fs上將s分紅序列a
sprint(fmt,exp) 返回經fmt格式化後的exp
sub(r,s) 用$0中最左邊最長的子串代替s
substr(s,p) 返回字符串s中從p開始的後綴部分
substr(s,p,n) 返回字符串s中從p開始長度爲n的後綴部分 詳細說明一下各個函數的使用方法。html
gensub(a,b,c[,d])全局替換,匹配正則a, 用b替換,c爲指定替換目標是第幾回匹配,d爲指定替換目標是哪一個域如$1,$2,若無d指$0,返回值爲target替換後內容(未替換仍是返回 target原內容),與sub、gsub不一樣的是,target內容替換後不改變。
gensub(/123/,"x",1,$1)替換$1中 第一次匹配到的123爲字符x,返回值爲$1替換後的內容,且$1的內容並無改變
gensub(/a(.*)b/,"\\1",1) 返回值爲匹配正則第1對()內的內容
gensub(/a(.*)b(.*)c/,"\\2",1) 返回值爲匹配正則第2對()內的內容函數