awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。
awk有3個不同版本:awk
、nawk
和gawk
,未作特別說明,一般指gawk,gawk 是 awk 的 gnu 版本。
awk其名稱得自于它的創始人 alfred aho 、peter weinberger 和 brian kernighan 姓氏的首個字母。實際上 awk 的確擁有自己的語言: awk 程式語言 , 三位建立者已將它正式定義為「樣式掃瞄和處理語言」。它允許您建立簡短的程式,這些程式讀取輸入檔案、為資料排序、處理資料、對輸入執行計算以及生成報表,還有無數其他的功能。
列印命令
ls| grep '/'|awk ''
指定目錄重新命名(專案目錄下的所有pom.xml檔案修改為pom.xml-bak)
find . -name 'pom.xml'|awk ''
統計所有狀態碼為 404 的請求
awk '($9 ~ /404/)' m.access.log |awk '' |sort
查盜鏈
awk -f\" '($2 ~ /\.(jpg|gif|png)/ && $4 !~ /^http:\/\/www\.example\.com/) ' access.log \ |sort |uniq -c |sort
列出響應時間超過 5 秒的請求
awk '($nf > 5)' access.log |awk -f\" '' |sort -n|uniq -c|sort -nr|head -20
刪除名稱包含4.3.5.release
的所有檔案
find . -name '*4.3.5.release*' |awk ''
只列印出命令,手工執行
find . -name '*4.3.5.release*' |awk ''
統計訪問最多的前十個ip位址
awk '' m.access.log |sort |uniq -c |sort -nr |head -10
轉義:'\''
,列印單引號(用兩個單引號括住乙個轉義的單引號)
附:
Linux高階運維命令(sed)
sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作。sed命令列格式為 sed nefri command 輸入文字sed n 2000,p fname lesssed n 2016 06 09 p catalina.out...
Linux運維 AWK介紹
將 awk script 放入指令碼檔案並以 bin awk f作為首行,給予該指令碼可執行許可權,然後在 shell 下通過鍵入該指令碼的指令碼名呼叫之。將所有的 awk script 插入乙個單獨指令碼檔案,然後呼叫 awk f wak 指令碼檔案 input file s awk 的執行過程 ...
linux命令 awk(運維基本功)
日誌分析,資料統計,命令結果過濾。等等情況下,awk絕對是運維人的好幫手,它能讓你在龐大而又有規律的資料中過濾 統計出你想要的資料,熟練運用awk,你的工作效率一定會有很大的提公升 awk f分隔符 v 變數 值 begin end file1 file2 f 指定分割符,預設空格 如 f 以逗號分...