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域分隔符的情況下,預設...