grep 文本搜索速查表

把 grep 最常用的搜索选项和技巧整理成速查表,日志分析和代码搜索时对照查。

系统与运维·共 38 条命令·最后更新 2026-07-19
返回 系统与运维

递归搜索 Recursive 7

grep -r "pattern" dir/
递归搜索目录
grep -R "pattern" dir/
递归搜索(跟随符号链接)
grep -rn "pattern" dir/
递归并显示行号
grep -rl "pattern" dir/
只输出匹配文件名
grep -r --include="*.log" "pattern" dir/
只搜索指定类型文件
grep -r --exclude="*.tmp" "pattern" dir/
排除指定类型文件
grep -r --exclude-dir="node_modules" "pattern" dir/
排除目录

正则表达式 Regular Expression 9

grep -E "pattern" file
扩展正则(等价于 egrep)
grep "^start" file
匹配行首
grep "end$" file
匹配行尾
grep "\<word\>" file
匹配单词边界
grep -w "word" file
匹配整个单词
grep "[0-9]" file
匹配数字
grep "[^0-9]" file
匹配非数字
grep "a\|b" file
匹配 a 或 b(BRE)
grep -E "a|b" file
匹配 a 或 b(ERE)

上下文 Context 4

grep -A 3 "pattern" file
匹配行后再显示 3 行
grep -B 2 "pattern" file
匹配行前显示 2 行
grep -C 3 "pattern" file
匹配行前后各显示 3 行
grep -A 3 -B 2 "pattern" file
前 2 行后 3 行

多模式与文件 Multiple Patterns & Files 6

grep -e "pattern1" -e "pattern2" file
匹配多个模式
grep -f patterns.txt file
从文件读取模式
grep "pattern" file1 file2
搜索多个文件
grep "pattern" *.log
搜索通配符匹配的文件
grep -H "pattern" file
显示文件名
grep -h "pattern" file1 file2
不显示文件名

常用场景 Common Patterns 5

grep "error\|warning" app.log
搜索 error 或 warning
grep -rn "TODO\|FIXME" src/
搜索代码中的 TODO
grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" access.log
提取 IP 地址
grep -c "^$" file
统计空行数
grep -v "^#" file | grep -v "^$"
排除注释和空行

💡 提示

  • grep 默认使用 BRE(基本正则),+、?、| 需转义或用 -E 启用 ERE。
  • 递归搜索大目录时加 --exclude-dir 排除 node_modules、.git 等。
  • grep -q 用于脚本中判断是否匹配,不输出内容只返回状态码。