awk '{if($4~"2011:12"){a[$9]++}} END{for (i in a) print i, "=>",a[i] }' ./access.log
计算日志里面每个返回码的出现次数,以后可以参考
echo "/home/nginx/logs/gdf.g1d.access.log" | grep -oP '(?<=/)[^./]+(?=\.)'
吧最后一个/之前第一个 点 之间的东西扣出来。
ifconfig eth0|grep "inet add"|grep -oP '(?<=addr:)[0-9.]+' 扣ip用
谜一样的模式~~
增加一点模式的资料:
预搜索有向前和向后两种:
表达式
|
方向
|
说明
|
(?=xxx)
|
正向预搜索(向右)
|
正向预搜索,判断当前位置右侧是否能匹配指定表达式
|
(?!xxx)
|
正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式
|
(?<=xxx)
|
反向预搜索(向左)
|
反向预搜索,判断当前位置左侧是否能够匹配指定表达式
|
(?xxx)
|
反向预搜索否定,判断当前位置左侧是否不能够匹配指定表达式
|
正向预搜索内部的表达式,始终采用“普通模式(从左向右)”模式,反向预搜索内部的表达式,始终采用“从右向左”模式。
例如:想要匹配字符a但不匹配abc,可以为/a(?!bc)/
再如:想要所有以.pl结尾但不是a.pl的文件名,可以/.*(?
=============================================================================================
awk {
total++;
if($4~/error/)error++;
else if($4~/notfound/)notFound++;
else if($4~/ok/){
ok++;
iwt+=$5;
#if($5>6500)print $0;
}else if($4~/miss/){
miss++;
#if($5>6500)print $0;
iwt+=$5;
}
};END{ok200=ok+miss;printf("%d,%d,%d,%d,%d,%d,%f",total,error,notFound,ok200,ok,miss,iwt/ok200)}
阅读(1003) | 评论(0) | 转发(0) |