grep 用法备忘
grep 是 Linux 系统中用来在文件里快速查找特定文本的命令,全称 Global Regular Expression Print,能使用正则表达式搜索文本并把匹配的行打印出来 。
百科
命令是什么
grep 的核心作用是在一个或多个文件中搜索字符串模板,找到后把包含该字符串的行显示到屏幕上,不影响原文件内容 。它支持三种工作方式:基本正则表达式(默认)、扩展正则表达式(-E 选项)和固定字符串匹配(-F 选项)。Unix 的 grep 家族包括 grep、egrep 和 fgrep,Linux 使用 GNU 版本的 grep,功能更强 。
百科
常用参数怎么用
-i 忽略大小写:搜索时不区分大小写,适合查找配置项或关键词时避免漏匹配。
示例:grep -i ‘error’ logfile.txt 可匹配 Error、ERROR、error 等。
-v 反向匹配:显示不包含匹配文本的所有行,用来过滤掉已知的干扰内容。
示例:grep -v ‘^#’ config.txt 可排除注释行。
-n 显示行号:在输出前加上匹配串所在行的行号,排查代码问题时直接定位到具体行。
示例:grep -n ‘root’ /etc/passwd 显示行号和匹配内容。
-r 递归搜索:递归搜索目录下所有文件及其子目录,适合源码或日志目录批量检索。
示例:grep -r ‘function_name’ /path/to/code/
-E 扩展正则:启用扩展正则表达式,支持更灵活的语法如"|"表示或。
示例:grep -E ‘error|warning’ logfile.txt 匹配 error 或 warning。
-c 统计行数:显示匹配了多少次,用来量化问题严重程度。
示例:grep -c ‘ERROR’ logfile.txt 统计错误出现次数。
-l/-L 只显示文件名:-l 列出包含匹配的文件名,-L 列出不包含匹配的文件名。
示例:grep -l ‘TODO’ *.py 列出所有包含 TODO 的 Python 文件。
-A/-B/-C 显示上下文:-A 显示匹配行之后的内容,-B 显示之前的内容,-C 显示前后内容。
示例:grep -C 3 ‘Exception’ logfile.txt 显示匹配行及前后各 3 行。
实战场景有哪些
日志排查:在系统日志中查找错误信息,配合-c 统计数量、-n 定位行号、-C 查看上下文。
示例:grep -n -C 5 ‘ERROR’ /var/log/syslog
代码搜索:在代码仓库中查找函数定义或变量使用,配合-r 递归搜索整个目录。
示例:grep -r ‘def login’ /home/project/
管道配合:将一个命令的输出传递给 grep 过滤,实现数据筛选。
示例:ps aux | grep ‘nginx’ 查找正在运行的 nginx 进程。
示例:ls | grep ‘.txt$’ 列出当前目录的 TXT 文件。
脚本自动化:grep 通过返回状态值说明搜索状态,找到返回 0,没找到返回 1,文件不存在返回 2,可在脚本中做条件判断。
示例:静默模式grep -q ‘pattern’ file 不显示输出,只通过退出状态码传达结果。
多文件搜索:一次性搜索多个文件,grep 会在每条结果前标明文件名。
示例:grep ‘root’ file1.txt file2.txt file3.txt
输出重定向:将搜索结果保存到文件供后续处理。
示例:grep ‘pattern’ file.txt > result.txt
- 点赞
- 收藏
- 关注作者
评论(0)