shell常用命令 awk

2021-08-28 09:46:46 字數 1508 閱讀 7573

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...