以统计nginx访问日志里面每个ip出现的个数为例
命令如下:
awk '{a[$1]++}END{for(j in a) print a[j],j}' /usr/local/nginx/logs/access.log
其中
{a[$1]++}的意思是把$1添加进a这个数组里面,并统计其个数。个人理解,这时候的数组a应该是一个内容对应一个值,例如(192.168.0.1:21,192.168.0.2:54)
for(j in a)的意思是把a这个数组的内容赋值给j。
print a[j],j}其中a[j]的意思是在a这个数组中找到“j”这个内容对应的值。简而言之就是,在a这个数组中查找192.168.0.1对应的值,也就是21,也就是这个ip出现的次数。