简介

grep 命令用于在文件中查找符合条件的字符串。

grep 指令用于查找内容包含指定模式的文件,如果发现某文件的内容符合所指定的模式,默认会将包含该模式的那一行显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法

1
grep "<查找内容>" [选项] [文件或目录...]

常用选项

基本选项

  • -i--ignore-case:忽略字符大小写的差别
  • -v--invert-match:显示不包含匹配文本的所有行
  • -n--line-number:在显示符合模式的那一行之前,标示出该行的行号
  • -c--count:计算符合模式的行数
  • -l--file-with-matches:列出文件内容符合指定模式的文件名称
  • -L--files-without-match:列出文件内容不符合指定模式的文件名称
  • -o--only-matching:只显示匹配部分
  • -w--word-regexp:只显示完整单词匹配的行
  • -x--line-regexp:只显示完整行匹配的行

正则表达式选项

  • -E--extended-regexp:使用扩展正则表达式
  • -F--fixed-regexp:将模式视为固定字符串的列表
  • -G--basic-regexp:将模式视为基本正则表达式(默认)

上下文显示选项

  • -A<显示行数>--after-context=<显示行数>:显示匹配行及其之后的 N 行
  • -B<显示行数>--before-context=<显示行数>:显示匹配行及其之前的 N 行
  • -C<显示行数>--context=<显示行数>:显示匹配行及其前后各 N 行

目录和文件选项

  • -r--recursive:递归查找目录下的所有文件
  • -d <动作>--directories=<动作>:当指定要查找的是目录时必须使用这项参数
  • -h--no-filename:在显示匹配行时不显示文件名
  • -H--with-filename:在显示匹配行时显示文件名

其他选项

  • -a--text:不忽略二进制数据
  • -b--byte-offset:在显示匹配行之前,标示出该行第一个字符的字节偏移
  • -e<模式>--regexp=<模式>:指定字符串作为查找文件内容的模式
  • -f<规则文件>--file=<规则文件>:从文件中读取模式,每行一个模式
  • -q--quiet--silent:静默模式,不显示任何信息
  • -s--no-messages:不显示错误信息
  • -V--version:显示版本信息