发布于2026-07-24 阅读(0)
扫一扫,手机访问
在 CentOS 环境下处理 Golang 日志,其实是个挺常见的需求。Golang 默认输出的是纯文本格式,结构清晰但缺乏直接解析的工具。不过别担心,Linux 自带的那些经典文本处理命令——grep、awk、sed、cut——完全够用,而且组合起来威力不小。下面直接上干货,几个典型场景和对应的命令,你照着改改就能用。

1. 过滤关键字:用 grep 快速定位
最基础也最常用。比如你想看看所有带 “ERROR” 的日志行,一行命令搞定:
grep "ERROR" /path/to/your/logfile.log
它会直接把包含 “ERROR” 的整行内容打印出来,简单粗暴。
2. 按日期筛选:awk 上场
如果日志里每行都带了时间戳,想只看某一天的记录,用 awk 处理非常顺手:
awk '/2021-09-01/ {print}' /path/to/your/logfile.log
这会把 2021 年 9 月 1 日所有日志行提取出来。日期格式可以根据你的实际日志调整正则表达式。
3. 提取特定字段:sed 的魔法
假设你的日志行长这样:
2021-09-01 12:34:56 INFO: User logged in: user1
想单独取出用户名“user1”?用 sed 的正则替换:
sed 's/.*User logged in: \([^ ]*\).*/\1/' /path/to/your/logfile.log
这里的关键是捕捉括号里的内容,然后替换为它。注意你的日志格式,微调一下正则就能适配。
4. 按分隔符切分:cut 快速取字段
如果日志行是空格分隔的,比如上面那个例子,想取前五个字段(日期、时间、级别、消息、用户名),用 cut 最直接:
cut -d ' ' -f 1,2,3,4,5 /path/to/your/logfile.log
指定分隔符为空格,然后列出要保留的字段编号即可。
组合使用:更复杂的场景
实际排查问题时,往往需要多个条件组合。比如,既要关键字“ERROR”,又要限定在某个日期范围内。这时候把管道用起来:
grep "ERROR" /path/to/your/logfile.log | awk '/2021-09-01/ {print}'
先通过 grep 筛选出所有 ERROR 行,再通过 awk 进一步过滤日期。当然,你也可以反过来,或者再加一层 sed 提取字段。自由度很高。
最后提醒一句:这些命令里的正则表达式和分隔符,一定要根据你实际日志的格式来调整。比如日期格式是“2021-09-01”还是“01/Sep/2021”,字段之间是用空格还是制表符,这些细节决定了命令能否生效。不妨先拿一小段日志测试一下,确认无误后再大规模处理。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8