微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使用awk计算列中单词出现次数

03/03/2014 12:31:21 BLOCK 10.1.34.1 11:22:33:44:55:66

03/03/2014 12:31:22 ALLOW 10.1.34.2 AA:BB:CC:DD:EE:FF

03/03/2014 12:31:25 BLOCK 10.1.34.1 55:66:77:88:99:AA

我试图使用awk在一个命令中计算上面“块”和“访问”一词的出现次数.

我一开始尝试了“阻止”这个词,但我的计数器似乎没有起作用.任何人都可以看到我的代码错在哪里?

awk ' BEGIN {count=0;}  { if ($3 == "BLOCK") count+=1} end {print $count}' firewall.log

解决方法:

使用数组

awk '{count[$3]++} END {for (word in count) print word, count[word]}' file

如果你想特别“阻止”:END {print count [“BLOCK”]}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐