awk----利用循环统计个数

以统计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出现的次数。

原文地址:https://www.cnblogs.com/QicongLiang/p/10316332.html