awk - 根据错误代码查找顶部 url

awk - Find the top url based on error code

我正在创建一个脚本来预分析我网站的访问日志。到目前为止,我一直在使用 awk 来获取所需的数据。

我需要能够使用 awk 来分析顶部 URL,但仅限于特定的错误代码。 (在本例中为 404)

简化后的日志结构如下:

'Request Method, URI, Error Code'

GET, /foo, 404
GET, /foo, 200
GET, /foo, 404
GET, /foo, 404
GET, /bar, 200
GET, /bar, 404
GET, /foobar, 404
GET, /foobar, 404

我想要的输出是(Listing top URLS that have 404 error Code):

3 /foo
2 /foobar
1 /bar

awksort:

awk '==404{a[]++}END{for(url in a){print a[url], url}}' log.txt | sort -rn

awk -F "," '{print $2,$3}' l.txt | grep -i "404" |awk '{print $1}'

这里有一个方案,数组筛选的输出直接用awk排序。

 awk 'BEGIN{ FS = ","; PROCINFO["sorted_in"] = "@val_str_desc" }{ if ( ~ "404") a[]++ }END{ for ( i in a ) print a[i], i }' yourfile

输出:

3  /foo
2  /foobar
1  /bar