Linux grep 命令:文本搜索与日志分析利器
【摘要】 grep 是 Linux 中非常常用的文本搜索工具,可以直接在文件中查找匹配特定模式的行,用来排查日志报错、配置文件参数、代码关键字等问题。 最基础的用法grep "keyword" filename.txt默认会在 filename.txt 中搜索包含 “keyword” 的行并输出。 实际使用中,通常递归搜索目录grep -r "timeout" /var/log/nginx/-r:递归...
grep 是 Linux 中非常常用的文本搜索工具,可以直接在文件中查找匹配特定模式的行,用来排查日志报错、配置文件参数、代码关键字等问题。
最基础的用法
grep "keyword" filename.txt
默认会在 filename.txt 中搜索包含 “keyword” 的行并输出。
实际使用中,通常递归搜索目录
grep -r "timeout" /var/log/nginx/
-r:递归搜索指定目录下的所有文件-i:忽略大小写(例如同时匹配 Timeout 和 timeout)-n:显示匹配行的行号-v:反向选择,输出不包含关键词的行
如果不确定关键词拼写,可以忽略大小写
grep -i "ERROR" syslog
这样可以同时匹配 error、Error、ERROR 等多种写法。
如果只想看文件名,不想看具体内容
grep -rl "database" /etc/
-l:仅列出包含匹配内容的文件名,不输出具体行内容。这在查找哪个配置文件包含特定配置时非常有用。
结合管道符使用
cat /var/log/syslog | grep "failed" | wc -l
先读取日志,过滤出包含 “failed” 的行,最后统计行数。这是运维排查故障频率最高的组合拳之一。
搜索时排除干扰项
grep "root" /etc/passwd | grep -v "nologin"
先搜出所有 root 相关行,再排除掉包含 “nologin” 的行,精准定位目标。
常见排查场景示例
1.查找最近报错的日志
grep -C 5 "Exception" app.log
-C 5 表示不仅输出匹配行,还输出匹配行的前后各 5 行上下文,方便还原现场。
2.统计某个 IP 的访问次数
grep "192.168.1.100" access.log | wc -l
3.高亮显示关键词
grep --color=auto "warning" system.log
大部分现代终端默认开启高亮,如果没有,可以手动加上这个参数。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)