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

如何用awk格式化日志文件为YYYY-MM-DD,value格式?

完善AWK命令实现4G基站温度日志转CSV格式

直接用以下AWK命令即可完成格式转换:

awk 'BEGIN{print "date,temperature"} /\[([0-9]{4}-[0-9]{2}-[0-9]{2})/{date=substr($1,2,10)} $3~/^[0-9]+$/{print date","$3}' /log/msg/sched/4G-Fan-Temperature-JZ/2023-06-2[89]*_eNB_618159_table.log

命令说明

  1. BEGIN块:脚本启动时先输出CSV表头date,temperature
  2. 提取日期:匹配日志中带时间戳的行(格式为[YYYY-MM-DD HH:MM:SS]),通过substr($1,2,10)从行首的[YYYY-MM-DD中截取10位日期字符串,存入变量date
  3. 提取温度并输出:匹配第三列为纯数字的行(也就是表格中的温度数据行,比如ATIDF eNB_618159 37),将之前提取的日期与温度值用逗号拼接后输出

为什么之前的命令无效?

你之前的命令会输出所有行的文件名和第三列,而日志中大部分行是空行、表头或者注释行,这些行的第三列要么为空要么是字符串(比如temperature),导致输出了大量无效内容。新命令通过过滤有效数据行,只提取需要的日期和温度值,直接得到目标格式。

执行后输出结果:

date,temperature
2023-06-28,37
2023-06-29,38

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:23:30