正則三劍客之awk的用法總結

2021-10-01 17:56:16 字數 1199 閱讀 8202

概述

awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。

awk的工作流程是這樣的:讀入有』\n』換行符分割的一條記錄,然後iu將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域,預設域分隔符是「空格符」或者「[tab]鍵」

awk [-f|-f|-v]『begin{} // end{}』 file

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。

使用方法 : awk 『』

儘管操作可能會很複雜,但語法總是這樣,其中 pattern 表示 awk 在資料中查詢的內容,而 action 是在找到匹配內容時所執行的一系列命令。花括號({})不需要在程式中始終出現,但它們用於根據特定的模式對一系列指令進行分組。 pattern就是要表示的正規表示式,用斜槓括起來。

awk語言的最基本功能是在檔案或者字串中基於指定規則瀏覽和抽取資訊,awk抽取資訊後,才能進行其他文字操作。完整的awk指令碼通常用來格式化文字檔案中的資訊。通常,awk是以檔案的一行為處理單位的。awk每接收檔案的一行,然後執行相應的命令,來處理文字。

$0表示整個當前行

$1每行第乙個字段

nf欄位數量變數

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

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

\t製表符

\n換行符

fsbegin時定義分隔符

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

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

!~不匹配,不精確比較

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

!=不等於,精確比較

&&邏輯與

||邏輯或

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

/[0-9][0-9]+/

兩個或者兩個以上數字

/[0-9][0-9]*/

乙個或者乙個以上數字

filename

檔名ofs

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

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

-f』[:#/]』

定義三個分隔符

三劍客之awk

awk命令的執行過程 滿足 awk從檔案中讀取一行內容到記憶體中 判斷是否滿足條件 滿足 執行對應的命令 輸出到螢幕 不滿足 awk從檔案中讀取一行內容到記憶體中 判斷是否滿足條件 不滿足 繼續讀取檔案裡的內容直到檔案最後awk命令的語法awk 引數 模式 檔案 awk 引數 條件 找誰 檔案 表示...

linux 三劍客之 awk

awk是一種程式語言,用於在linux unix下對文字和資料進行處理。資料可以來自標準輸入 stdin 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正規表示式等先進功能,是linux unix下的乙個強大程式設計工具。它在命令列中使用,但更多是作為指令碼來使用。awk有很多內建的...

linux三劍客之awk

linux三劍客 grep sed awk 與sed類似,awk是行處理器 相比較螢幕處理的優點,在處理龐大檔案時不會出現記憶體溢位或是處理緩慢的問題,它可以對每一行進行切片處理 awk處理過程 依次對每一行進行處理,然後輸出 awk命令形式 awk f f v begin end file f f...