GNU grep
基本语法(Synopsis)
grep [OPTION]... PATTERN [FILE ...][] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。
基本功能与推荐用法
grep 按模式筛选文本。代码库递归搜索通常优先使用 rg;grep 更适合系统脚本和通用管道。
grep 'ERROR' app.log
grep -n -i 'warning' app.log # 行号、忽略大小写
grep -E 'ERROR|WARN' app.log # 扩展正则
grep -F 'literal[1]' file.txt # 固定字符串
grep -v '^#' config.ini # 排除匹配行
grep -q 'ready' health.txt # 只使用退出码
grep -r --include='*.conf' 'listen' /etc
grep -l 'pattern' *.txt # 只列文件名推荐:
- 搜索字面量用
-F,避免不必要的正则解释。 - 脚本判断是否匹配使用
-q和退出码。 - 递归代码搜索使用 rg,可自动处理
.gitignore。 - 匹配可能以
-开头时使用grep -- '-pattern'。
示例中的选项、参数与子命令
本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。
| 语法元素 | 含义 |
|---|---|
-n | 显示匹配行的行号。 |
-i | 忽略大小写。 |
-E | 使用扩展正则表达式。 |
-F | 把 PATTERN 当作固定字符串。 |
-v | 反选,只输出不匹配的行。 |
-q | 静默判断是否匹配,以退出状态表示结果。 |
-r | 递归搜索目录。 |
--include=GLOB | 递归搜索时只处理匹配 glob 的文件。 |
-l | 只输出包含匹配内容的文件名。 |
-- | 结束选项解析,避免以 - 开头的模式被当作选项。 |