linux命令之a(chǎn)wk命令
linux命令之a(chǎn)wk命令
awk命令是一種編程語言,在linux系統(tǒng)中可以對文本或者數(shù)據(jù)進行處理。下面由學習啦小編為大家整理了linux命令之a(chǎn)wk命令的相關知識,希望對大家有所幫助!
linux命令之a(chǎn)wk命令詳解
awk是一種編程語言,用于在linux/unix下對文本和數(shù)據(jù)進行處理。數(shù)據(jù)可以來自標準輸入(stdin)、一個或多個文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動態(tài)正則表達式等先進功能,是linux/unix下的一個強大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk有很多內(nèi)建的功能,比如數(shù)組、函數(shù)等,這是它和C語言的相同之處,靈活性是awk最大的優(yōu)勢。
awk命令格式和選項
語法形式
awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s)
常用命令選項
-F fs fs指定輸入分隔符,fs可以是字符串或正則表達式,如-F:
-v var=value 賦值一個用戶定義變量,將外部變量傳遞給awk
-f scripfile 從腳本文件中讀取awk命令
-m[fr] val 對val值設置內(nèi)在限制,-mf選項限制分配給val的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。
linux命令之a(chǎn)wk命令模式和操作
awk腳本是由模式和操作組成的。
模式
模式可以是以下任意一個:
/正則表達式/:使用通配符的擴展集。
關系表達式:使用運算符進行操作,可以是字符串或數(shù)字的比較測試。
模式匹配表達式:用運算符~(匹配)和~!(不匹配)。
BEGIN語句塊、pattern語句塊、END語句塊:參見awk的工作原理
操作
操作由一個或多個命令、函數(shù)、表達式組成,之間由換行符或分號隔開,并位于大括號內(nèi),主要部分是:
變量或數(shù)組賦值
輸出命令
內(nèi)置函數(shù)
控制流語句
附:linux命令awk腳本基本結構
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
一個awk腳本通常由:BEGIN語句塊、能夠使用模式匹配的通用語句塊、END語句塊3部分組成,這三個部分是可選的。任意一個部分都可以不出現(xiàn)在腳本中,腳本通常是被單引號或雙引號中,例如:
awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename
awk "BEGIN{ i=0 } { i++ } END{ print i }" filename