在shell命令或程式設計中,可以用awk強大的的文字處理能力。如果要格式化報文或從乙個大的文字檔案中抽取資料報,那麼awk可完成這些任務。awk是一種解釋的程式語言。awk也是shell過濾工具中最難掌握的。awk是一種自解釋的程式語言。結合awk和sed和grep,將會使awk程式設計更加容易。
awk語言最基本的功能是在檔案或字串中基於指定的規則瀏覽和抽取資訊。
有三種方式可呼叫awk.
<1>.命令列方式。
<2>.將所有的awk命令插入乙個檔案,並利用chmod使awk檔案成為執行。
<3>.將所有的awk命令插入乙個單獨檔案,然後呼叫。
以下簡單介紹awk的各種方式,詳細請檢視相關另外文件
在awk中有四種概念。
1.抽取域
2.匹配正規表示式
3.比較域
4.向awk傳遞引數
以下簡單介紹:
1).儲存awk輸出: #awk '' myfile>newfile
2).使用tee,在輸出到檔案的同時輸出到螢幕(利用管道'|')
#awk '' myfile |tee newfile
3).列印報告頭,#awk 'begin ' newfile
4).列印資訊尾.#awk 'begin end ' myfile
5).匹配,如下若在myfile第二列中帶有brown,則列印資訊
#awk '' myfile
6).精確匹配,同上,只是將~改為==
7).不匹配,有時要瀏覽資訊並抽取不匹配操作的記錄,與~相反的符號是!,如下
#awk '$0 !~/brown/' myfile
8).比較
如小於: #awk 'if ($1<$2) print $1' myfile
9).設定大小寫 #awk '[gg]reen/' myfile
10).任意字元,表示式/^...a/意為前三個字元是任意字元
#awk '$1~/^...a/' myfile
11).或關係匹配,#awk '$0~/(yellow || red)/' myfile
12).與:&& ,或:||
13).awk內建變數
<1>.要快速檢視記錄個數,應使用nr,如:#awk 'end ' myfile <2>.以下使用nf變數顯示每一條讀記錄中有多少個域,並在end部份 列印輸入檔名。#awk ' end ' myfile
<3>. 判斷並輸出 . #awk '' myfile
#awk 'begin {if ($6
awk命令簡介
awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk有3個不同版本 awk nawk和gawk,未作特別說明,一般指gawk,gawk...
awk陣列簡介
一 定義 在 awk 中,陣列是關聯陣列,它的特點是 1 陣列的下標可以是整數,也可以是負數甚至是字串 2 陣列的下標可以不連續。awk 的變數 ignorecase 的值不影響陣列下標。當 awk 建立乙個陣列的時候,如果沒有指定下標,預設已連續整數作為下標,起始值是 1.awk 的陣列是什麼高效...
awk陣列簡介
一 定義 在 awk 中,陣列是關聯陣列,它的特點是 1 陣列的下標可以是整數,也可以是負數甚至是字串 2 陣列的下標可以不連續。awk 的變數 ignorecase 的值不影響陣列下標。當 awk 建立乙個陣列的時候,如果沒有指定下標,預設已連續整數作為下標,起始值是 1.awk 的陣列是什麼高效...