Linux高階運維命令(awk)

2021-09-02 05:38:47 字數 1277 閱讀 1909

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

awk有3個不同版本:awknawkgawk,未作特別說明,一般指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 以逗號分...