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