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的字尾部分
詳細說明一下各個函式的使
用方法。
gsub
函式有點類似於
sed查詢和替換。它允許替換乙個字串或字元為另乙個字串或字
符,並以正規表示式的形式執行。第乙個函式作用於記錄
$0,第二
個gsub
函式允許指定
目標,然而,如果未指定目標,預設為$0。
index(s,t)
函式返回目標字串
s中查詢字串
t的首位置。
length
函式返回字串s字元
長度。match
函式測試字串
s是否包含乙個正規表示式
r定義的匹配。
split
使用域分隔符fs
將字串
s劃分為指定序列a。
sprint
函式類似於
printf函式(
以後涉及),
返回基本輸出格式
fmt的
結果字串
exp。
sub(r,s)
函式將用s替代
$0中最左邊最長的子串,該子串被
(r)匹配。
sub(s,p)
返回字串
s在位置
p後的字尾。
substr(s,p,n)
同上,並指定子串長度為n。
現在看一看
awk中這些字串函式的功能。
1.gsub
要在整個記錄中替換乙個字串為另乙個,使用正規表示式格式,
/目標模式
/,替換模式
/。例如改變學生序號
4842
到4899
:$ awk 'gsub('4842/, 4899) ' grade.txt
j.troll 07/99 4899 brown-3 12 26 26
echo "i am hif****fdst"|awk ''
i abcc hif****fdst
2.index
查詢字串s中
t出現的第一位置。必須用雙引號將字串括起來。例如返回目標字串
bunny中ny
出現的第一位置,即字元個數。
$ awk 'begin grade.txt
3.length
awk字串函式(二)
substr函式 substr函式返回從字串指定位置開始的乙個子串。如果指定了子串的長度,則返回字串的相應部分。如果指定的長度超出了字串的實際範圍,則返回其實際內容。格式 substr 字串 起始位置 substr 字串 起始位置 子串長度 範例 awk filename claus 說明 在字串 ...
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 ...