我需要编写一个UNIX命令来搜索日志中5XX状态HTTP请求的数量。日志格式如下例:
192.168.0.101 - - [12/Dec/2019:23:15:56 +0900] "GET /index.html HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
任何建议?
一个最小的解决方案是
$ grep "5\d{2}" somefile.log | wc -l
grep将仅将输出过滤到包括字符串5XX
的行,然后wc -l
然后计算产生的行数。
但是,字符串500
可能会出现在日志文件的其他位置。为了解决这个问题,您不妨考虑在grep
中使用更详细的模式,例如
$ grep "HTTP/1.1\"\ 5\d{2}" somefile.log | wc -l