awk命令初識

2021-07-27 10:44:14 字數 1968 閱讀 9022

awk是行處理器: 相比較螢幕處理的優點,在處理龐大檔案時不會出現記憶體溢位或是處理緩慢的問題,通常用來格式化文字資訊

awk處理過程:依次對每一行進行處理,然後輸出

awk命令形式:

awk [-f|-f|-v] 『

begin{} // end{}』 file

[-f|-f|-v]   大引數,

-f指定分隔符,

-f呼叫指令碼,

-v定義變數 var=value

'  '          引用

**塊begin   初始化**塊,在對每一行進行處理之前,初始化**,主要是引用全域性變數,設定fs分隔符

//           匹配**塊,可以是字串或正規表示式

{}           命令**塊,包含一條或多條命令

;          多條命令使用分號分隔

end      結尾**塊,在對每一行進行處理之後再執行的**塊,主要是進行最終計算或輸出結尾摘要資訊

特殊要點:

$0           表示整個當前行

$1           每行第乙個字段

nf          字段數量變數

nr          每行的記錄號,多檔案記錄遞增

fnr        與nr類似,不過多檔案記錄不遞增,每個檔案都從1開始

\t            製表符

\n           換行符

fs          begin時定義分隔符

rs        

輸入的記錄分隔符, 預設為換行符(即文字是按一行一行輸入)

~            匹配,與==相比不是精確比較

!~           不匹配,不精確比較

==         等於,必須全部相等,精確比較

!=           不等於,精確比較

&&      邏輯與

||             邏輯或

+            匹配時表示1個或1個以上

/[0-9][0-9]+/   兩個或兩個以上數字

/[0-9][0-9]*/    乙個或乙個以上數字

filename 檔名

ofs      

輸出字段分隔符, 預設也是空格,可以改為製表符等

ors        輸出的記錄分隔符,預設為換行符,即處理結果也是一行一行輸出到螢幕

-f'[:#/]'   定義三個分隔符

print & $0

print 是awk列印指定內容的主要命令

awk ''  /etc/passwd   ==   

awk ''  /etc/passwd  

awk '' 

/etc/passwd                                           //不輸出passwd的內容,而是輸出相同個數的空行,進一步解釋了awk是一行一行處理文字

awk ''  

/etc/passwd                                        

//輸出相同個數的a行,一行只有乙個a字母

awk -f":" ''  

/etc/passwd 

awk -f: ''   /etc/passwd                   //將每一行的前二個字段,分行輸出,進一步理解一行一行處理文字

awk  -f: '' ofs="\t" /etc/passwd        //輸出欄位1,3,6,以製表符作為分隔符

-f指定指令碼檔案

awk -f script.awk  file

begin

//效果與

awk -f":" ''相同,只是分隔符使用fs在**自身中指定

awk命令詳解

本文編輯整理自 一 前言 awk有3個不同版本 awk nawk和gawk,未作特別說明,一般指gawk。awk語言的最基本功能是在檔案或字串中基於指定規則來分解抽取資訊,也可以基於指定的規則來輸出資料。完整的awk指令碼通常用來格式化文字檔案中的資訊。二 基本語法 awk opion awk sc...

awk命令學習

題目 檔案a,每行兩列,格式為url ip,檔案b每行一列,格式為url,通過awk實現找出b檔案中的url是否在a檔案中,如存在,將此url和對應的ip輸出 檔案大小不考慮 編寫檔案a如下 編寫檔案b如下 預期輸出結果為 設計awk命令如下 c sharp view plain copy prin...

常用awk命令

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