22 awk程式設計

2021-09-08 15:41:17 字數 2543 閱讀 1568

1、

begin模組,

通常用來改變內建變數的值,如 ofs,rs和fs

等,以及列印標題。如:

awk 'begin'

file //輸入域分隔符為空格,輸出域分隔符為

tab,記錄分隔符為\n。

$awk

'begin

2、end

在整個輸入檔案處理完成後被執行。如

$awk 'end' test  //列印被處理的記錄數

3、重定向

awk '$1==100' test.cpp

4、管道

1)awk 'begin' test.cpp //執行

linux

的date

命令,並通過管道輸出給

getline

,然後再把輸出賦值給自定義變數

d,並列印它。

getline從標準輸入、管道或者當前正在處理的檔案之外的其他輸入檔案獲得輸入。它負責從輸入獲得下一行的內容,並給

nf,nr

和fnr

等內建變數賦值。

如果得到一條記錄,

getline

函式返回

1,如果到達檔案的末尾就返回

0,如果出現錯誤,例如開啟檔案失敗,就返回-1。

2)awk 'begin' //split函式把變數

d轉化成陣列

mon,然後列印陣列

mon的第二個元素

3)awk 'begin'

迴圈使getline從ls

的輸出中讀取一行,並把它列印到螢幕。這裡沒有輸入檔案,因為

begin

塊在開啟輸入檔案前執行,所以可以忽略輸入檔案。

4)awk 'begin$1~name' file

5)awk 'begin'

6)可以在

awk中開啟乙個管道,且同一時刻只能有乙個管道存在。通過

close()

可關閉管道。如:

$ awk '' test end

。awk

把print

語句的輸出通過管道作為

linux

命令sort

的輸入,end

塊執行關閉管道操作。

system函式可以在

awk中執行

linux

的命令。

awk 'begin'

fflush函式用以重新整理輸出緩衝區,如果沒有引數,就重新整理標準輸出的緩衝區,如果以空字串為引數,如

fflush(""),

則重新整理所有檔案和管道的輸出緩衝區。

5awk '}' file

next語句從輸入檔案中讀取一行,然後從頭開始執行

awk指令碼

exit語句用於結束

awk程式,但不會略過

end塊。退出狀態為

0代表成功,非零值表示出錯

6陣列(

1)用變數作為陣列下標。如:

$ awk ';end

}delete函式用於刪除陣列元素。如:

$ awk ' end' test

。7、內建函式

1)sub

函式匹配記錄中最大、最靠左邊的子字串的正規表示式,並用替換字串替換這些字串。只替換一次。

sub (regular expression, substitution string):

sub (regular expression, substitution string, target string)

awk '' testfile

2)gsub

替換所有。

3)index

函式返回子字串第一次被匹配的位置,偏移量從位置

1開始。

index(string, substring)

awk '' file

4)length函式返回記錄的字元數

5)子字串

substr( string, starting position )

substr( string, starting position, length of string )

6)toupper

和tolower

函式可用於字串大小間的轉換,該功能只在

gawk

中有效7)

split

按給定的分隔符把字串分割為乙個陣列。如果分隔符沒提供,則按當前

fs值進行分割。格式如下:

split( string, array, field separator )

split( string, array )

awk ''

awk '}' *

8)時間函式

systime

9)數學函式

sin等

[1]10)自定義函式

function name ( parameter, parameter, …

) 8、預設

print $0

9、變數不需要定義就可以直接使用,變數型別可以是數字或字串。

10、字串一定要用雙引號。【1

】 】

awk程式設計

一 awk程式設計模型 awk程式由乙個主輸入迴圈維持,按行輸入,反覆執行,知道終止條件被觸發。awk定義了兩個特殊字段 begin 和 end,begin用於在主輸入迴圈 讀輸入檔案 之前執行,end用於在主輸入之後執行。二 awk幾種簡單的用法 注 input是乙個ascii檔案,其中包含三個空...

awk 程式設計

形式 awk options code filename 比如 awk f a filename 這裡用字元 a作為行分隔符,預設是空格 awk fmyscript awk filename in 如果 code 部分太長,或者要重用,可以寫成 awk指令碼 裡可以分成3部分。begin 條件 en...

awk程式設計

awk是linux 系統下的乙個強大的文字處理工具,常常和sed grep一起配合使用。主要功能就是將文字依行讀取,然後每行按照一定的分隔符隔開放進乙個array裡面並提供了函式對這些元素進行一定的處理分析。在awk中,檔案的每一行由域分隔符分開,每一項稱為乙個域。在不指明 f域分隔符的情況下,預設...