cat access.log | awk '$9!=200{print $11}' | sort | uniq -c | sort -k1,1nr | head -5
awk '$9!=200{print $11}' :
$9 每行的第九个字符串,本文件中第九个字符串为HTTP状态码,常见的有200,404,302等
$9!=200 获取HTTP状态码不等于200的行
{print $11} 输出每行中的第11个字符串,本文件中为访问的地址
sort | uniq -c | sort -k1,1nr | head -5:
sort :对单词进行排序
uniq -c:显示唯一的行,并在每行行首加上本行在文件中出现的次数
sort -k1,1nr:按照第一个字段,数值排序,且为逆序
head -5:取前5行数据