awk擴展應用

5案例5:awk擴展應用

5.1問題

本案例要求使用awk工具完成下列兩個任務:

  • 分析Web日誌的訪問量排名,要求獲得客戶機的地址、訪問次數,並且按照訪問次數排名

5.2方案

1)awk統計Web訪問排名

在分析Web日誌文件時,每條訪問記錄的第一列就是客戶機的IP地址,其中會有很多重複的IP地址。因此只用awk提取這一列是不夠的,還需要統計重複記錄的數量並且進行排序。

通過awk提取信息時,利用IP地址作爲數組的下標,每遇到一個重複值就將此數組元素遞增1,最終就獲得了這個IP地址出現的次數。

針對文本排序輸出可以採用sort命令,相關的常見選項爲-r、-n、-k。其中-n表示按數字順序升序排列,而-r表示反序,-k可以指定按第幾個字段來排序。

5.3步驟

實現此案例歲要按照如下步驟進行。

步驟一:統計web訪問量排名

分步測試、驗證效果如下所述。

1)提取IP地址及訪問量

[root@svr5 ~]# awk '{ip[$1]++} \
>  END{for(i in ip) {print ip[i],i }}' /var/log/httpd/access_log
4  127.0.0.1
17 192.168.4.5
13 192.168.4.110
.. ..

2)對第1)步結果根據訪問量排名

[root@svr5 ~]# awk  '{ip[$1]++} END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log | sort -nr
17 192.168.4.5
13 192.168.4.110
4 127.0.0.1
.. ..

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章