1. 程式人生 > >Awk讀取檔案第5行到第十行內容輸出其中包含a關鍵字的行號以及內容

Awk讀取檔案第5行到第十行內容輸出其中包含a關鍵字的行號以及內容

awk 'NR>=5&&NR<=10&&match($0,'a'){print NR,$0}' 

awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} 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’[:#/]’ 定義三個分隔符

awk命令詳解連結

http://www.cnblogs.com/xudong-bupt/p/3721210.html