grep

在文件或输入中搜索匹配正则表达式的行

语法

grep [OPTION]... PATTERN [FILE]...

参数

参数说明示例级别
-r --recursive 递归搜索目录 grep -r "TODO" src/ 常用
-i --ignore-case 忽略大小写 grep -i "error" log.txt 常用
-n --line-number 显示行号 grep -n "function" app.js 常用
-l --files-with-matches 只显示匹配的文件名 grep -rl "import" src/ 常用
-v --invert-match 显示不匹配的行 grep -v "#" config.ini 常用
-c --count 只显示匹配行数 grep -c "error" log.txt 进阶
-A 显示匹配行后 N 行 grep -A 3 "Error" log.txt 进阶
-B 显示匹配行前 N 行 grep -B 2 "Error" log.txt 进阶
-E --extended-regexp 使用扩展正则 grep -E "error|warning" log.txt 常用

示例

递归搜索代码

grep -rn "TODO" --include="*.js" .
只搜索 .js 文件

排除目录

grep -rn "import" --exclude-dir=node_modules .

搜索多个关键词

grep -E "error|fatal|panic" /var/log/syslog

统计出现次数

grep -c "404" access.log

显示上下文

grep -B 2 -A 5 "Exception" app.log
前 2 行 + 后 5 行

常见错误

grep: No such file or directory 检查文件路径,或用 -r 递归搜索目录

技巧

相关命令