1.awk是乙個強大的文字分析工具,相對於 grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單 來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。
2.awk命令列格式為:awk 'awk程式' 資料檔名, 此時awk會先編譯該程式,然後執行該程式來處理所指定的資料檔案,因此,對於awk命令來說,重點在awk程式上。
3.awk程式的主要結構:
awk程式中主要語法是pattern,故常見之awk程式其形態如下:
pattern1
pattern2
4.pattern是什麼:awk可接受許多不同形態的pattern,一般常使用關係表示式來當成pattern,關係運算子》, <, >=, <=, ==, !=、~(match), !~(not match)
5.actions是什麼:actions是由許多awk指令構成,而awk的指令與c語言中的指令十分類似。
i/o指令: print,printf(),getline...
流程控制指令:if(...)else, while(...)
awk如何處理pattern
awk會先判斷該pattern的值,若為true,則awk執行該pattern對應的actions,否則不執行
6.例子:
50 > 23 此時由於50比23大,所以會輸出列印『hello world』
"banana" ~/123/ 此時由於banana中不包含123,所以不會列印輸出
7.awk欄位變數:
$0 乙個字串,其內容為目前awk所讀入的資料行
$1 $0上第乙個欄位的資料
$2 $0上第二個欄位的資料
nf 為一整數,表示$0上所存在的字段數目。 number of fields
nr 為已整數,表示awk已讀入的資料行的數目。 number of records
filename 為正在處理的資料檔案的檔名
8.awk工作流程:
1)自動從指定的資料檔案中讀取乙個資料行
2)自動更新相關的內建變數之值。如nf、nr、$0....
3)依次執行程式中所有的pattern指令
4)當執行完畢pattern後還有未讀取的資料,則反覆執行步驟1到步驟4
9.示例:
awk 'beginend' data.csv
begin和end只執行一次,nr是awk已讀入的資料行數目,nf檔案列總數,fs改變字段切割的方式
awk 'beginnr>99990end' data.csv
awk 'beginelse}end' data.csv
awk 'beginwhile(i<=1000)print total;}'
shell常用命令之五 awk
呼叫awk的方法跟sed類似,也有三種方式。第一種 在shell命令列輸入命令呼叫awk awk f 域分割符 awk程式段 輸入檔案 root nn shell awk file 在正規表示式中 表示空白行 this is a blank line.this is a blank line.thi...
awk常用命令
awk命令詳解 2009年03月31日 星期二 22 22 awk指令詳解 1.命令簡述 awk將每個輸入行識別成一條記錄,而將那一行上的每個單詞域識別成乙個字段 2.命令選項 f 指定分隔符 nf 單行最後乙個分段 nr 行數 等同 and 語句兩邊必須同時匹配為真 等同 or 語句兩邊同時或其中...
awk常用命令
1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第一列 sed n 2,1p filename awk pri...