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