AWK - 寻找基于4xx错误代码的顶部网址
问题描述:
这是一个我昨天张贴在回答了一个跟进的问题:AWK - 寻找基于4xx错误代码的顶部网址
awk - Find the top url based on error code
我用昨天的答案,抢夺刚404修改了它错误代码,现在抓住所有4xx。
awk '$3 ~ /^4/{a[$2]++}END{for(url in a){print a[url], url}}' samplelog.txt | sort -rn
这个工作,但现在我想要一个更精细的输出。现在它将所有4xx分组在一起,例如403和404将被计为2,而不是唯一的。我希望能够统计所有4xx,但是通过它们独特的代码将它们分开。
示例日志:
GET /foo 404
GET /foo 200
GET /foo 404
GET /foo 404
GET /foo 400
GET /foo 403
GET /foo 403
GET /bar 200
GET /bar 400
GET /foobar 404
GET /foobar 200
GET /foobar 404
GET /foobar 403
结果与当前脚本(同上)
awk '$3 ~ /^4/{a[$2]++}END{for(url in a){print a[url], url}}' samplelog.txt | sort -rn
6 /foo
3 /foobar
1 /bar
所需的结果
3 /foo 404
2 /foo 403
2 /foobar 404
1 /foo 400
1 /bar 400
1 /foobar 403
答
$ awk '$3~/^4/{a[$2 FS $3]++} END{for(k in a) print a[k],k}' file |
sort -k1,1nr -k2,2
3 /foo 404
2 /foo 403
2 /foobar 404
1 /bar 400
1 /foo 400
1 /foobar 403
看起来这个工作。谢谢! –