grep
grep 命令 - 文本搜索利器
grep(Global Regular Expression Print)是 Linux 中最强大的文本搜索工具,使用正则表达式在文件中搜索匹配的行。无论是分析日志、查找代码还是过滤数据,grep 都是必备技能。
命令语法
grep [选项] 模式 [文件...]
常用参数
| -i | 忽略大小写 |
| -r | 递归搜索目录 |
| -n | 显示匹配行的行号 |
| -v | 反向匹配,显示不包含模式的行 |
| -c | 只显示匹配的行数 |
| -l | 只显示包含匹配的文件名 |
| -w | 匹配整个单词 |
| -A n | 显示匹配行及其后 n 行 |
| -B n | 显示匹配行及其前 n 行 |
| -C n | 显示匹配行及其前后各 n 行 |
| -E | 使用扩展正则表达式(等同于 egrep) |
实战示例
- $ grep 'error' /var/log/syslog在日志中搜索包含 error 的行
- $ grep -rn "TODO" ./src/递归搜索项目中所有包含 TODO 的文件及行号
- $ grep -i 'warning' app.log忽略大小写搜索 warning
- $ grep -v '^#' config.conf排除以 # 开头的注释行
- $ grep -C 3 'ERROR' app.log显示匹配行及其上下文各3行
- $ ps aux | grep nginx结合管道查找 nginx 进程
- $ grep 'error' log.txt在log.txt中搜索包含error的行
- $ grep -rn 'TODO' .递归搜索当前目录下包含TODO的行并显示行号
温馨提示
grep 搭配管道 | 使用威力无穷,是命令行数据分析的核心技能。处理大文件时,grep 比用编辑器打开快得多。