AWK工具使用學習筆記(一)

2021-08-26 19:42:29 字數 2653 閱讀 3883

awk

思維:基於模式動作形式,在動作前指定特定的模式,使動作在記錄滿足模式時才執行。

基本概念:

1、模式和動作:

模式:即觸發動作的條件

,模式部分決定動作何時觸發及觸發事件。

可以是:

a 條件語句

if($4=="green") b

復合語句

and (&&

)、or(||

)、!

c 正規表示式

awk '$0 ~/[gg]reen/  '  grade.txt

動作:對資料進行的操作。

動作必須用

{}括起來 2

、域和記錄: 域:

awk將標準輸入的每一行按照分隔符分成

n個域,依次為

$1,$2,$3,…,$n

要輸出域採用

print

語句,輸出所有域使用

$0.

判斷awk

語句錯誤的一些依據: 1

)、確保整個

awk命令用單引號括起來;

2)、確保命令內的所有

引號成對出現;

3)、確保用花括號括起動作語句,用圓括號括起條件語句;

重點知識點:1、

awk輸出報頭和報尾及格式化輸出。

begin  end 

採用print

語句格式輸出

例如:awk 'begin end ' grade.txt

name    belt

----------------------

m.tansley       05/99   48311   green   8       40      44

j.lulu          06/99   48317   green   9       24      26

p.bunny         02/99   48      yellow  12      35      28

j.troll         07/99   4842    brow-3  12      26      26

l.tansley       05/99   4712    brow-3  12      30      28

end-of-report

tom@svr:~/ssh$

begin:

設定計數和列印頭

end:用來在a w k完成文字瀏覽動作後列印輸出文字總數和結尾狀態標誌 2

、使用正規表示式~

1)列印第

4個域值為

green

和green的行

tom@svr:~/ssh$ awk '' grade.txt

m.tansley       05/99   48311   green   8       40      44

j.lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$ 2

)列印第

4個域值非

green

和green

的行!~

tom@svr:~/ssh$ awk '' grade.txt

p.bunny         02/99   48      yellow  12      35      28

j.troll         07/99   4842    brow-3  12      26      26

l.tansley       05/99   4712    brow-3  12      30      28

tom@svr:~/ssh$

3)匹配行中出現有特定字元的行

,省去了

if條件

tom@svr:~/ssh$ awk '$0 ~/[gg]reen/ ' grade.txt

m.tansley       05/99   48311   green   8       40      44

j.lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$

3、條件表示式

完全匹配某字串==

tom@svr:~/ssh$ awk '' grade.txt

m.tansley       05/99   48311   green   8       40      44

tom@svr:~/ssh$

不可寫成:

awk 'if($4=="green") ' grade.txt

if條件是動作的一部分,必須與動作寫在乙個花括號內。

awk內建變數: nr

:已讀的記錄數 nf

:瀏覽記錄的域個數

filename: awk

瀏覽的檔名

awk一次可以瀏覽多個檔案

tom@svr:~/ssh$ awk '' grade.txt

m.tansley       05/99   48311   green   8       40      44

j.lulu          06/99   48317   green   9       24      26

tom@svr:~/ssh$

awk工具使用

awk是乙個非常強大的文字報告生成器,用於輸出格式化文字輸出。awk 是由aho,weinberger,kernighan三個人名命名 基本用法 swk options program file program pattern 語句之間用分號分隔 選項 f 指明輸入時用到的字段分隔符 v var v...

awk工具使用

awk 是一種 樣式掃瞄和處理語言 它允許您建立簡短的程式,這些程式讀取輸入檔案 為資料排序 處理資料 對輸入執行計算以及生成報表。它的名稱取自於它的創始人 alfred aho peter weinberger 和 brian kernighan 姓氏的首個字母。本文論述的 awk 命令主要指 l...

awk學習筆記

單詞計數 cat filename awk end 排序演算法 bin bash function f while n 1 do f 1 shift done wait 顯示特殊符 var i am a student echo var awk 結果為 am a i student echo var...