具備C語言的能力下,快速學會使用AWK為了做些什麼

2021-08-09 14:55:23 字數 819 閱讀 7595

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。

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

輸入awk的文字首先會被按「行」劃分為很多條"記錄",每一行表示一條記錄,每一行再由分隔符劃分成很多個「域」,分隔符預設是空格符,也可以通過命令引數-f來指定

比如 awk -f ';'。

每一條記錄會被awk的處理一次,分割出來的「域」其實就是從當前被action script處理的行提取出來的索引,第乙個域用$1索引,第二個用$2,以此類推,其中$0表示對一整行進行索引。

我覺得把awk理解為虛擬機器程式會更合適,其中 -f和「輸入的文字檔案路徑」之類的可以可以理解為是虛擬機器的引數配置,

而虛擬機器執行的指令碼就是awk中用單引號引起來的指令碼。

乙個完整的awk虛擬機器指令碼應該包含幾個部分,指令碼的初始化**,指令碼的迴圈行處理**,指令碼的結束**。

比如 awk 'begin      end'

而且程式設計的語法類似於c語言,甚至比c語言更簡約。

我們甚至還可以利用正規表示式從輸入的文字過濾出我們需要行進行程式設計處理(而不是所有行都處理),比如

awk 'begin    /  雙斜槓裡面是正規表示式  /  end'

那麼我們能用awk幹嘛?

1.統計文件

2. 對文件做複雜的查詢

3. 修改和編輯文件內容。讀取文件的內容,利用if語句處理特定的行,然後重定向到新文件

4.運算元據庫(這個具體自己找相關資料吧)。

5.簡潔的瀏覽檔案,過濾出文件中你需要的資訊。

學會使用DOS下的重定向符號「 」

在dos命令中有乙個很奇特的命令,通常我們用到的dos命令如 del dir 這些命令,都是由字母組成的,而這個dos命令只是乙個單個的符號 它的名字就叫做重定向。別看它看起來很簡單,用處卻很大,就讓我們來見識一下重定向的妙用吧。有一次我到一位朋友家裡做客,正趕上朋友在家裡整理硬碟,我到他家的時候,...

C語言 學會使用帶參巨集,提高程式設計基礎(二)

帶參巨集在我們的嵌入式程式設計中使用得非常多,其定義如下 define 識別符號 引數列表 字串行其中引數列表中的引數之間用逗號分隔,字串行中應包含參數列中的引數。在定義帶引數的巨集時,巨集名識別符號與左圓括號之間不允許有空白符,應緊接在一起,否則變成了無引數的巨集定義。並且,字串行與其每乙個引數必...

linux下的C語言快速學習 從1 1開始。

1 從1 1開始 建立乙個檔案main.c使用gedit開啟寫下如下 include stdio.h void main 然後開啟終端 jerry ubuntu gcc main.c jerry ubuntu a.out please enter two numbers 1 1 2 對於以上幾句命令...