語法格式:
awk [ 選項 ] [命令] [檔案]
選項引數
-f fs or --field-separator fs
指定輸入檔案折分隔符,fs是乙個字串或者是乙個正規表示式,如-f:
-v var=value or --asign var=value
賦值乙個使用者定義變數
-f scripfile or --file scriptfile
從指令碼檔案中讀取awk命令
-mf nnn and -mr nnn
對nnn值設定內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是bell實驗室版awk的擴充套件功能,在標準awk中不適用
-w compact or --compat, -w traditional or --traditional
在相容模式下執行awk。所以gawk的行為和標準的awk完全一樣,所有的awk擴充套件都被忽略
-w help or --help, -w usage or --usage
列印全部awk選項和每個選項的簡短說明
-w lint or --lint
列印不能向傳統unix平台移植的結構的警告
-w lint-old or --lint-old
列印關於不能向傳統unix平台移植的結構的警告
-w posix
開啟相容模式。但有以下限制,不識別:/x、函式關鍵字、func、換碼序列以及當fs是乙個空格時,將新行作為乙個域分隔符;操作符和=不能代替和=;fflush無效
-w re-interval or --re-inerval
允許間隔正規表示式的使用,參考(grep中的posix字元類),如括號表示式[[:alpha:]]
-w source program-text or --source program-text
使用program-text作為源**,可與-f命令混用
-w version or --version
列印bug報告資訊的版本
運算子
內建變數
awk的工作流程
1.讀輸入檔案之前執行的**段(由begin關鍵字標識)。
2.主迴圈執行輸入檔案的**段。
3.讀輸入檔案之後的**段(由end關鍵字標識)
1.通過關鍵字 begin 執行 begin 塊的內容,即 begin 後花括號 {} 的內容。如果begin塊存在,awk執行它指定的actions。
2.完成 begin 塊的執行,開始執行body塊。awk從輸入檔案中讀取一行,稱為一條輸入記錄。(如果輸入檔案省略,將從標準輸入讀取),awk將讀入的記錄分割成多個字段,將第1個字段放入變數$1中,第2個字段放入$2,以此類推。
$0表示整條記錄所有域(一整行內容)。$1 表示第乙個域,n 表示第 n 個域。
3.依次執行各 body 塊,pattern 部分匹配該行內容成功後,才會執行 awk-commands 的內容,把當前輸入記錄與awk中』匹配規則'中的「匹配規則」比較,看是否匹配,如果相匹配,就執行對應的『執行命令』。如果不匹配,就跳過對應的執行命令。
4.awk讀取輸入的下一行,繼續重複步驟2和3,迴圈讀取直到檔案結束完成body塊執行。
5.當awk讀完所有的輸入行後,開始執行end塊,輸出最終結果。
Linux awk命令詳解
3.awk的執行過程 1 awk script的組成 awk script可以由一條或多條awk cmd組成,兩條awk cmd之間一般以newline分隔 awk cmd由兩部分組成 awk pattern awk script可以被分成多行書寫,必須確保整個awk script被單引號括起來。2...
linux awk命令學習
awk是一種功能很強大的程式語言,用於linux系統下文字和資料的處理。本篇文章只學習一些awk相關的常規應用,而不對awk的語法進行討論,如果有需要,直接查資料就好了。1.檢視特定程序的pid,sh ps pid tty time cmd 414 00 00 00 rcs 417 00 00 00...
linux awk命令詳解
awk 儘管操作可能會很複雜,但語法總是這樣,其中 pattern 表示 awk 在資料中查詢的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號 不需要在程式中始終出現,但它們用於根據特定的模式對一系列指令進行分組。pattern就是要表示的正規表示式,用斜槓括起來。awk 語言...