grep -C 100 "error" server.log 用于在 server.log 文件中查找包含 “error” 的行,并同时显示该行前后100行的上下文。这是排查日志问题的常用技巧,解释一下:
命令参数详解
grep:文本搜索工具,用于在文件中查找匹配模式的行。-C 100:-C是--context的缩写,表示显示匹配行前后各100行。- 若只需前100行,用
-B 100(--before-context)。 - 若只需后100行,用
-A 100(--after-context)。
- 若只需前100行,用
"error":搜索模式,支持正则表达式(如"ERROR|Failed"可同时匹配 “ERROR” 和 “Failed”)。server.log:目标日志文件。
使用场景示例
假设 server.log 包含以下内容:
[2023-01-01 10:00:00] INFO: Starting server...
[2023-01-01 10:00:01] INFO: Loading configuration...
[2023-01-01 10:00:02] ERROR: Database connection failed
[2023-01-01 10:00:03] INFO: Trying to reconnect...
[2023-01-01 10:00:04] INFO: Server started successfully
执行 grep -C 2 "ERROR" 后,输出会包含匹配行及其前后2行:
[2023-01-01 10:00:00] INFO: Starting server...
[2023-01-01 10:00:01] INFO: Loading configuration...
[2023-01-01 10:00:02] ERROR: Database connection failed
[2023-01-01 10:00:03] INFO: Trying to reconnect...
[2023-01-01 10:00:04] INFO: Server started successfully
注意事项 大小写敏感:
- 默认
grep区分大小写,若要忽略大小写,用-i参数(如grep -iC 100 "error")。