linux世界中最普遍使用的兩個命令行編輯器:linux
awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤其強大。簡單來講awk就是把文件逐行的讀入,以空格爲默認分隔符將每行切片,切開的部分再進行各類分析處理。編程
awk有3個不一樣版本: awk、nawk和gawk,未做特別說明,通常指gawk,gawk 是 AWK 的 GNU 版本。bash
gawk的報告生成能力一般用來從大文本文件中提取數據元素,並將它們格式化成可讀 的報告,完美的例子是格式化日誌文件。編輯器
在全部的發行版中都沒有默認安裝gawk程序。工具
1 awk '{pattern + action}' {filenames}
gawk強大之處在於能夠寫腳原本讀取文本行的數據,而後處理並顯示數據。大數據
必須將腳本命令放到兩個花括號{ } 中。spa
以上運行gawk’{print"hello word"}‘不會有任何反應,print命令會將文本打印到STDOUT,但沒有在命令行上指定文件名,因此gawk只會從STDIN接收數據。
若輸入一個文本並按下回車鍵,無論你在數據流中輸入什麼,都會獲得一樣的輸出hello word 。
ctrl+D組合鍵會在bash中產生一個EOF字符,即是數據流已經結束。命令行
gawk會自動給一行中的每一個數據元素分配一個變量,默認狀況下,會將以下變量分配給它在文本行中發現的數據字段:3d
每一個數據字段是經過字段分隔符劃分的,默認字段分割符是任意的空白字符(如空格或製表符)。
若是要在命令行的腳本中使用多條命令,只要在命令之間放個分號;便可。
默認狀況,gawk會從輸入中讀取一行文本,而後針對該行的數據執行程序腳本,但有時可能須要在處理數據前或數據後運行腳本: