📝 grep参数速查表

📝 grep 参数速查表

🎯 基础匹配

参数 含义 示例
PATTERN 要匹配的模式(支持正则) grep "error" file.log
-F 关闭正则,按固定字符串匹配(更快) grep -F "a.b" file.txt
-E 使用扩展正则 (ERE),相当于 egrep `grep -E "error
-P 使用 Perl 正则 (PCRE) grep -P "\d{3}" file.txt

🔎 匹配控制

参数 含义 示例
-i 忽略大小写 grep -i "error" file.log
-w 匹配完整单词 grep -w "cat" pets.txt
-x 匹配整行 grep -x "hello" file.txt
-v 取反(匹配不包含的行) grep -v "DEBUG" file.log

📂 文件搜索

参数 含义 示例
-r / -R 递归目录搜索 grep -r "TODO" ./src
-l 只输出匹配的文件名 grep -l "main" *.c
-L 只输出不匹配的文件名 grep -L "main" *.c
--exclude=PATTERN 排除文件 grep -r "foo" . --exclude="*.log"
--include=PATTERN 只查指定文件 grep -r "foo" . --include="*.py"

📊 输出控制

参数 含义 示例
-n 显示行号 grep -n "error" file.log
-H 显示文件名(默认多个文件时) grep -H "foo" file1 file2
-h 隐藏文件名 grep -h "foo" file1 file2
-c 只显示匹配行数 grep -c "error" file.log
-o 只输出匹配内容(不显示整行) grep -o "foo[0-9]" file.txt
-q 静默模式(仅返回退出码) grep -q "error" file.log && echo "Found"

📐 上下文控制

参数 含义 示例
-A NUM 显示匹配行及后 NUM 行 grep -A2 "error" file.log
-B NUM 显示匹配行及前 NUM 行 grep -B2 "error" file.log
-C NUM 显示匹配行及前后 NUM 行 grep -C3 "error" file.log

⚡ 性能 & 其他

参数 含义 示例
-m NUM 匹配到 NUM 行后停止 grep -m1 "error" file.log
--color=auto 高亮匹配内容 grep --color=auto "foo" file.txt
-Z 输出以 NULL 结尾(配合 xargs -0 用) `grep -Z -l "main" *.c

📌 常见组合示例

# 忽略大小写,显示匹配行号,并高亮
grep -in --color=auto "error" app.log

# 递归查找 .py 文件里包含 "def " 的函数定义
grep -r --include="*.py" "def " .

# 查看匹配 "ERROR" 的行,以及后面 3 行
grep -A3 "ERROR" app.log

# 只统计包含 "fail" 的行数
grep -c "fail" result.txt

✅ 这样一张表几乎覆盖了日常 95% 的 grep 用法。

posted @ 2025-08-18 11:25  蒲公英PGY  阅读(35)  评论(0)    收藏  举报