You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Awk按日期聚合文件并统计匹配次数总和的实现方法

单Awk命令实现按日期聚合日志统计

直接使用以下命令即可完成按日期聚合、统计第5列等于"1927"的总匹配次数,输出格式为日期,总次数:

awk -F' {2,}' '
    BEGIN {
        OFS = ","
    }
    $5 == "1927" {
        cnt++
    }
    ENDFILE {
        date = substr(FILENAME, 35, 10)
        date_total[date] += cnt
        cnt = 0
    }
    END {
        for (d in date_total) {
            print d, date_total[d]
        }
    }
' /log/msg/sched/xxyyzz/*_table.log

命令说明

  • 分隔符设置:-F' {2,}'指定日志内容的字段分隔符为2个及以上空格,和你原分步命令的规则一致。
  • 输出格式初始化:BEGIN块设置输出字段分隔符为逗号,确保最终输出符合日期,次数的要求。
  • 单文件统计:遍历日志行,每遇到第5列等于"1927"的记录,就将当前文件的计数器cnt加1。
  • 按日期累加:每个文件处理完成后(ENDFILE块),从文件名中提取日期(通过substr(FILENAME, 35, 10)截取固定位置的10位日期字符串),并将当前文件的统计数累加到对应日期的总计数器date_total[date]中,随后重置cnt为0,准备处理下一个文件。
  • 最终输出:所有文件处理完毕后,END块遍历所有日期的统计结果,按要求格式输出。

效果验证

  • 若处理单个日期的日志文件(如2023-01-31),所有文件匹配次数均为0时,输出为:
    2023-01-31,0
    
  • 若处理多日期的日志文件(如2023-01-30、2023-01-31、2023-02-01),每个日期总次数均为0时,输出为:
    2023-01-30,0
    2023-01-31,0
    2023-02-01,0
    

内容的提问来源于stack exchange,提问作者HattrickNZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:30:49