測試常用命令之awk篇

2022-09-05 01:42:10 字數 1175 閱讀 7386

awk/gawk

1,內建變數

filename:輸入檔名稱

fnr:當前資料檔案中的資料行數

nf:資料檔案中的字段總數

nr:已處理的輸入資料行數目

fs:輸入資料段分隔符

rs:輸入資料行分隔符

ofs:輸出資料段分隔符(使用這個來控制和printf格式化可以試試,哪個更方便些)

ors:輸出資料行分隔符

$0一行資料,$1——$n各個欄位的資料。

1)可以根據模式進行匹配,進一步的可以將匹配限定於特定欄位中~

cat a.txt | awk '/2/'

cat a.txt | awk '$1~3 '

甚至還可以對數學表示式和文字進行匹配:

cat a.txt | awk '$1==0'

cat a.txt | awk '$1=="0" '

2)加入條件判斷(上面的模式匹配某種程度上也類似於條件判斷)

if語句:

cat a.txt | awk 'else}' 

另外,多條語句要麼分成多行來寫,要麼最好加上分號。

cat a.txt | awk '

> else

>

> }'

awk中的if語句分開書寫

迴圈語句:

while語句:

cat a.txt | awk 'begin } end'   

for語句:

cat a.txt | awk 'begin } end'    

感覺while迴圈是控制整體的迴圈次數,但是for則是對每一行都進行一次迴圈。即使不加迴圈控制條件,中間{}語句也對各行進行計算

函式相關

awk有一些內建的函式,比如mktime時間函式,split等等,甚至還可以內建函式,這部分高階特性等後面用到的時候深入研究下吧

2,相關案例

示例文字

123

45

示例文字a.txt

cat a.txt | awk '

begin end

'

計算各行數值的和

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

awk常用命令

awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...