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只输出包含匹配内容的文件名。
--结束选项解析,避免以 - 开头的模式被当作选项。

官方资料