1.只處理使用者id為奇數的行,並列印使用者名稱和uid號
awk -f : '}' /etc/passwd
2.顯示系統的普通使用者,並列印使用者名稱和id
awk -f : '$1 != "root"' /etc/passwd
3.顯示使用者shell是』/bin/bash』的使用者,並列印使用者名稱
awk -f : '$7 == "/bin/bash"' /etc/passwd
4.統計普通使用者的個數
awk -f : '$1 != "root"' /etc/passwd |wc -l
5.統計文字的總行數
awk 'end' /etc/passwd
6.顯示檔名
ll |awk -f " " '/^-/'
7.顯示uid為501使用者的相關資訊
awk '$3 == 501' /etc/passwd
8.利用awk模擬tail -1的效果
awk 'end' /etc/passwd
9.看懂陣列兩個練習(統計tcp鏈結數)
netstat -ant|awk -f " " '/^tcp/end}'
10.將test2檔案中的行追加到test1的同一行後,並儲存到檔案test3
test1 內容
haha
hehe
alice
bobtest2內容
2025
1830
test3 內容
haha:20
hehe:25
alice:18
bob:30
awk '' test1 > test3
11.某產品的cdn頻寬運營成本迅猛增漲,其頻寬主要由各種型別的組成,為了對某產品的流量頻寬進行優化,現需要對該產品的和號碼特性做一些分析,已有的日誌檔案test.log供分析使用,格式是
號碼|請求大小|請求id,內容如下:
其中帶有gif表示是gif的請求,帶有jpg表示是jpg的請求,請使用(python/shell/awk/sort)編寫程式實現如下分析思路(1,2為中間步驟,可以只輸出3,4結果):
1.找出所有gif請求的所有號碼
2.找出所有gif請求的號碼和其對應的請求大小總和及請求數總和.
3.找出所有gif請求的號碼,並按照其請求大小總和從大到小排序.
4.找出所有gif請求的號碼,並按其請求平均大小從大到小排序.
3、awk 'begin/gif$/end}' test.log |sort -k2nr
4、awk 'begin/gif$/' test.log |sort -t "|" -k2nr
常用awk指令碼
begin else if 2 2 end 說明 按照某列的值進行分組求和。注意 awk指令碼中中間 塊本身就是是對檔案中每行都進行處理,需要使用while i此檔案命名為abc.awk 則執行方式是awk f abc.awk data 如果awk檔案不複雜,建議直接用awk命令列執行,如 awk ...
AWK 指令碼例子
能夠到乙個類似與 data sandbox scanresult 0 1 41435 42458 2 result.xml 的路徑,在該檔案目錄下還有乙個以md5命名的檔案。需求是 根據xml 路徑得到md5 全部xml 檔案路徑儲存在 randomsample55000 20150105 vre....
shell指令碼之awk
一 什麼是awk awk其實相當於一門可以處理資料文字的語言,這麼說的原因是其具有很多類c語言的語法,如 變數,陣列,函式,流程控制等,其由aho,weinberger,kernighan大約在1977年開發完成,隨後被引入unix linux中。二 awk可以幹什麼 awk是乙個非常強大的資料處理...