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"
)。