linux 下 查看 nginx 日志中访问前10 的 ip

cat access.log | awk '{a[$1]++} END {for(b in a) print b"\t"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"\t"a[b]}

取出数组中的下标 b,也就是IP地址和a[b]它的个数

对于 sort -k2 -r
对第二列进行排序