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

如何计算非一致时间区间下各日志事件间隔内的数据总和

实现方案

你可以使用awk工具快速完成该需求,无需额外安装依赖,文本处理效率较高:

1. 匹配示例输出格式版(输出data区间描述)

awk '
# 匹配data行,记录区间起止序号
$2 ~ /^data/ {
    if (start == "") start = substr($2, 5)
    end = substr($2, 5)
}
# 匹配log行,输出统计结果并重置变量
$2 ~ /^log/ {
    if (start == end) {
        printf "%s %s sum(data%d)\n", $1, $2, start
    } else {
        printf "%s %s sum(data %d-%d)\n", $1, $2, start, end
    }
    start = ""
}
' 你的数据文件路径

2. 实际数值求和版(如果需要计算data的数值累加结果)

awk '
$2 ~ /^data/ {
    sum += substr($2, 5) + 0
}
$2 ~ /^log/ {
    print $1, $2, sum
    sum = 0
}
' 你的数据文件路径

逻辑说明

  • 逐行读取文件内容,根据第二个字段的类型分别处理:
    • 遇到data类数据时,记录当前区间的第一个data序号和最后一个data序号,如需计算总和就累加对应数值
    • 遇到log类事件时,输出当前行的时间、日志名称、对应区间的统计结果,然后清空记录变量进入下一个统计区间

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:45:02