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的后綴部分 詳細說明一下各個函數的使用方法。
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對()內的內容