1、根据nginx日志用awk过滤出最近二十万条数据中状态码为200的IP访问次数以及通过的终端访问方式并排序
[root@ltd logs]# tail -n "200000" /data/app/nginx/logs/access.log|awk '$9~/200/ {print "http:"$9,$1,$13,$14}'|sort |uniq -c|sort -k1 -nr |head -n50|awk '{printf "%-10s%-20s%-10s%-20s\n",$2,$3,$1"次","终端:"$4}'
tail -n "200000" /data/app/nginx/logs/access.log|awk '{if($9="200")print "http:"$9,$1,$13,$14}'|sort |uniq -c|sort -k1 -nr |head -n50|awk '{printf "%-10s%-20s%-10s%-20s\n",$2,$3,$1"次","终端:"$4}'
##解读
##awk '$9~/200/ {print "http:"$9,$1,$13,$14}' 匹配第九段字符串中有200的并打印第9、1、13、14行
##sort |uniq -c|sort -k1 -nr |head -n50 排序去重并取前50行
##awk '{printf "%-10s%-20s%-10s%-20s\n",$2,$3,$1"次","终端:"$4}' printf 格式化输出; "%-10s%-20s%-10s%-20s\n"#%-30s表示输出字符串,宽度30位,左对齐.%-15s用来指定第二列的,左对齐,宽度15.两个百分号之间可以没有空格.使用\n对每一行的输出加上换行符
参考:https://www.cnblogs.com/chuanzhang053/p/9298409.html