综合应用
统计NGINX访问IP
统计Nginx日志中每个IP的访问量有多少,日志如下:
192.168.56.1 - - [21/May/2018:20:44:06 -0400] "GET /index.html HTTP/1.0" 404 169 "-" "ApacheBench/2.3" "-"/code/index.html
解答
[root@as4k ~]# awk '{ip[$1]++} END{for (i in ip) print i,ip[i]}' access.log | sort -rnk2 | column -t | head
58.220.223.62 12049
112.64.171.98 10856
114.83.184.139 1982
117.136.66.10 1662
115.29.245.13 1318
223.104.5.197 961
116.216.0.60 957
180.111.48.14 939
223.104.5.202 871
223.104.4.139 869
awk处理文本
有一文本文件lessons.txt内容如下,请使用awk处理该文本,并输出内容如result.txt
lessons.txt
634751 预排
568688 预排
386760 删除
619373 预排
428491 预排
487563 完成
603342 完成
436339 完成
result.txt
删除 386760
完成 487563,603342,436339
预排 634751,568688,619373,428491
awk '{array[$2]=array[$2]?array[$2]","$1:array[$2]$1}END{for (i in array) print i,array[i]}' lessons.txt
awk脚本
#!/bin/awk
#filename: les.awk
{
if (array[$2] == "") {
array[$2] = array[$2]$1
} else {
array[$2] = array[$2]","$1
}
}
END {
for (i in array) {
print i,array[i]
}
}
awk -f les.awk lessons.txt