V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qsnow6
V2EX  ›  Bash

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

  •  
  •   qsnow6 · 2022-04-14 17:35:13 +08:00 · 975 次点击
    这是一个创建于 987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的次数

    5 条回复    2022-07-22 18:35:04 +08:00
    XiLingHost
        1
    XiLingHost  
       2022-04-14 17:37:10 +08:00
    前面加个 grep
    qsnow6
        2
    qsnow6  
    OP
       2022-04-14 19:12:47 +08:00
    @XiLingHost #1 这个慢很多啊,有没有直接通过 awk 的方法
    aper
        3
    aper  
       2022-04-14 19:54:41 +08:00
    -F 以 /为分隔符?
    pghxif
        4
    pghxif  
       2022-07-22 18:34:25 +08:00
    awk '{if($9=404) print $6}'|cut -d'/' -f4|sort|uniq -c
    pghxif
        5
    pghxif  
       2022-07-22 18:35:04 +08:00
    @pghxif
    这样可以统计每个目录出现 404 的次数
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5251 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:21 · PVG 09:21 · LAX 17:21 · JFK 20:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.