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

Posted 光を追うのCaius

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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出现的次数。

以上是关于awk----利用循环统计个数的主要内容,如果未能解决你的问题,请参考以下文章

利用while循环编程统计输入的一行中字符的个数

Linux记录-常用统计awk

linux统计一个文件中某个字符串的个数[grep/awk/tr]

linux统计一个文件中某个字符串的个数[grep/awk/tr]

linux统计一个文件中某个字符串的个数[grep/awk/tr]

linux统计一个文件中某个字符串的个数[grep/awk/tr]