substr函式 substr函式返回從字串指定位置開始的乙個子串。如果指定了子串的長度,則返回字串的相應部分。如果指定的長度超出了字串的實際範圍,則返回其實際內容。格式
substr
(字串
,起始位置
)substr
(字串
,起始位置
,子串長度
) 範例
$ awk
'' filename
claus
說明:在字串"santa claus" 中,列印從位置7開始、長度為6個字元的子串。
match函式:match函式返回正規表示式在字串中出現的位置,如果未出現,則返回0。match函式把內建變數rstart設為子串在字串中的起始位置, rlength則設為子串的長度.這些變數可以被substr函式用來提取相應模式的子串。格式
match
(字串
,正規表示式
) 範例
$ awk
'end' filename
10說明:正規表示式/[a-z]+$/的意思是查詢在字串尾部連續出現的大寫字母.找到的子串usa是從字串"good ole usa"的第10個字元開始的。如果字串未能匹配到正規表示式,則返回0。範例
$ awk
'end' filename
103$ awk
'begin;\
end' filename
usa
說明:1.變數rstart被match函式設定為匹配到的正規表示式在字串中的起始位置。變數rlength則被設為子串的長度。
2.substr函式在變數line中查詢子串,把rstart和rlength的值(由match函式設定)作為子串的起始位置和長度。
split函式 split函式使用由第3個引數指定的字段分隔符,把字元取拆分成乙個陣列。如果沒有提供第3個引數,awk將把fs 的當前值作為字段分隔符。格式
split
(字串
,陣列,字段分隔符
)split
(字串
,陣列) 範例
$ awk
'begin' filename
說明:split函式把字串12/25/2001拆分為陣列date。以正斜槓作為字段分隔符。陣列date的下標從1開始。awk將列印陣列date的第2個元素。
sprinf函式 sprintf函式返回乙個指定格式的表示式。可以在sprintf函式中使用printf函式的格式規範。格式
variable
= sprintf
("含有格式說明的字串"
,表示式
1,表示式
2,...
,表示式n
) 範例
$ awk
'' filename
說明:按照printf的規範設定第1個和第3個字段的格式(乙個左對齊、長度為15的字串和乙個右對齊、長度為6個字元的浮點數)。結果被賦給使用者自定義的變數line。請參見printf函式。
參考資料:
awk 字串函式
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,...
awk字串函式總結
在這裡總結一下awk的字串函式。1.長度函式length 2.分段函式split 語法如下 split input string,output array,separator split函式將乙個字串分隔到乙個陣列中。它有三個引數,第乙個為輸入字串,也就是要處理的字串 第二個為乙個輸出陣列 第三個為...
awk內建字串函式
awk內建字串函式 gsub r,s 在整個 0中用s替代 r awk gsub name xingming temp gsub r,s,t 在整個t中用 s替代r index s,t 返回 s中字串 t的第一位置 awk begin temp 返回4 length s 返回 s的長度 match ...