Linux grep 命令:文本搜索与日志分析利器

举报
yd_232564628 发表于 2026/09/25 11:10:22 2026/09/25
【摘要】 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)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。