awk 字串函式

2021-09-22 13:32:34 字數 1730 閱讀 8962

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 ...