grep(Global Regular Expression Print)文本搜索工具,用于在文件或输入流中快速定位匹配指定模式(字符串或正则表达式)的行。
- 文本搜索:快速匹配包含关键词的行。
- 正则表达式支持:支持基本(BRE)和扩展正则(ERE,通过
-E),实现复杂模式匹配(如 IP 地址、邮箱格式)。
- 递归搜索:
-r 或 -R 选项可遍历目录及其子目录下所有文件。
以下为高频选项分类说明:
| 选项 | 作用 | 示例 |
-i | 忽略大小写 | grep -i "error" log.txt |
-v | 反向匹配(排除行) | grep -v "debug" log.txt |
-w | 全词匹配 | grep -w "test" file.txt(不匹配"testing") |
-o | 仅输出匹配部分 | grep -o "http://[^ ]*" url.txt(提取URL) |
| 选项 | 作用 | 示例 |
-n | 显示行号 | grep -n "TODO" code.py |
-l | 仅显示文件名 | grep -rl "deprecated" /src |
-c | 统计匹配行数 | grep -c "404" access.log |
--color | 高亮匹配文本(默认启用) | grep "warning" syslog |
| 选项 | 作用 | 示例 |
-A N | 显示匹配行后N行 | grep -A 3 "crash" app.log |
-B N | 显示匹配行前N行 | grep -B 2 "timeout" app.log |
-C N | 显示匹配行前后各N行 | grep -C 2 "exception" app.log |
- 提取错误信息:
grep "ERROR" app.log。
- 统计异常频率:
grep -c "Timeout" api.log。
- 查看错误上下文:
grep -C 5 "segfault" system.log(显示前后5行)。
- 递归搜索函数调用:
grep -rn "calculate_score()" /src。
- 列出待修复文件:
grep -l "deprecated" *.js。
- 提取结构化数据:
grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log | sort | uniq -c`
# 提取IP并统计出现次数
- 过滤无效数据:
grep -v "N/A" dataset.csv > cleaned.csv。
- 限制匹配数:
grep -m 100 "pattern" largefile.log(仅输出前100个匹配)。
- 跳过二进制文件:
grep -I -r "text" /dir(避免解析二进制文件)。