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”]}