awk編程 awk功能與sed相似,都是用來進行文本處理的,awk語言可以從文件或字符串中基於指定規則浏覽和抽取信息,在抽取信息的基礎上,才能進行其他文本操作。
awk是一種編程語言,gawk是目前最新的版本,當前的Linux版本用的都是gawk。 Linux系統/bin目錄下有awk和gawk兩個命令,awk實際上是/bin/gawk的鏈接,gawk是一種功能很強且很實用的語言,利用gawk語言可以實現數據查找、抽取文件中數據、創建管道流命令等功能。
awk編程模型 awk定義了兩個特殊的字段:BEGIN和END,BEGIN用於在主輸入循環之前執行,即在未讀取輸入文件行之前執行,END則相反,用於在主輸入循環之後執行,即在讀取輸入文件行完畢後執行。
我們可簡單的將awk編程模型分為三個階段:
讀輸入文件之前的執行代碼段(由BEGIN關鍵字標識)
讀取輸入文件時的執行代碼段
讀輸入文件完畢之後的執行代碼段(由END關鍵字標識)
awk調用方法 調用awk的方法與調用sed類似,也有三種方式,一種為Shell命令行方式,另外兩種是將awk程序寫入腳本文件,然後執行該腳本文件。
三種方式的命令格式歸納如下: 1、在Shell命令行輸入命令調用awk,格式為:awk[-F 域分隔符] 'awk程序段' 輸入文件
同樣要注意,需要用單引號將awk程序段引起來。
2、將awk程序段插入腳本文件,然後通過awk命令調用它,格式為:awk-f awk腳本文件輸入文件
與sed命令類似,awk也用-f選項表示調用awk腳本文件。
3、將sed命令插入腳本文件後,最常用的方法是設置該腳本文件為可執行,然後直接執行該腳本文件,格式為:./awk腳本文件輸入文件
如用第3種方式調用awk,awk腳本文件仍以sha-bang(#!)符號開頭,但是,sha-bang符號後面加上awk或gawk的路徑。