cat access.log | awk '{a[$1]++} END {for(b in a) print b" "a[b]}' | sort -k2 -r | head -n 10
参数解读:
对于awk 'a[$1]++',需要了解3个知识点
1、awk数组知识
2、awk的基本命令格式 awk 'pattern{action}'
省略action时,默认action是{print},如awk '1'就是awk '1{print}'
3、var++的形式:先读取var变量值,再对var值+1
对于.{for(b in a) print b" "a[b]}
取出数组中的下标 b,也就是IP地址和a[b]它的个数
对于 sort -k2 -r
对第二列进行排序