grep 文本搜索速查表
把 grep 最常用的搜索选项和技巧整理成速查表,日志分析和代码搜索时对照查。
返回 系统与运维基础搜索 Basic Search 7
grep "pattern" file在文件中搜索匹配
grep -i "pattern" file忽略大小写
grep -v "pattern" file反向匹配(排除)
grep -c "pattern" file统计匹配行数
grep -n "pattern" file显示行号
grep -o "pattern" file只输出匹配部分
grep -q "pattern" file静默模式(只返回状态码)
递归搜索 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 用于脚本中判断是否匹配,不输出内容只返回状态码。