如何使用 awk 打印 nginx 404 日志的目录

2022-04-14 17:35:13 +08:00
 qsnow6

nginx 日志的格式是这样的:

[5/Apr/2022:12:45:28 +0800] 175.139.183.196 - 1391 "https://www.example.com/xxxxx/1.html" "GET https://www.example.com/file/upload/201512/02/11-58-30-89-157.jpg" 302 46 454 MISS "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36" "text/html; charset=iso-8859-1"

我可以通过以下命令统计每个网址 404 的次数

awk '{if($9=404) print $6} |sort|uniq|wc -l'

如果我想按目录统计出现 404 的次数的话,应该怎么用 awk 来实现?

即统计网址中 /xxxxx/部分出现 404 的次数

738 次点击
所在节点   Bash
5 条回复
XiLingHost
2022-04-14 17:37:10 +08:00
前面加个 grep
qsnow6
2022-04-14 19:12:47 +08:00
@XiLingHost #1 这个慢很多啊,有没有直接通过 awk 的方法
aper
2022-04-14 19:54:41 +08:00
-F 以 /为分隔符?
pghxif
2022-07-22 18:34:25 +08:00
awk '{if($9=404) print $6}'|cut -d'/' -f4|sort|uniq -c
pghxif
2022-07-22 18:35:04 +08:00
@pghxif
这样可以统计每个目录出现 404 的次数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX