grep命令解释


grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

grep -E = egrep
grep -F = fgrep

默认情况下,grep打印匹配的行。

OPTIONS
通用程序信息
--help 简要概述这些命令行选项,然后退出。
-V 将grep的版本号打印到标准输出流。
匹配器选择
-E 将模式解释为 扩展的正则表达式。
-F 将模式解释为 固定字符串列表,其中任何一个都将被匹配。
-G 将模式解释为基本正则表达式。 这是默认值。
-P 将模式解释为Perl正则表达式。
匹配控制
-e PATTERN, --regexp=PATTERN 指定字符串做为查找文件内容的样式.使用模式作为图样。可用于指定多个搜索模式,或保护以连字符(-)开头的模式。 (-e由POSIX指定。)
-f FILE, --file=FILE 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-i 忽略模式和输入文件中的大小写区别。
-v 选择不匹配的行。
-w 仅选择包含构成整个单词的匹配项的行。
-x 仅选择与整行完全匹配的那些匹配项。
-y -i的过时同义词。
通用输出控制
-c 计算符合样式的列数。
--color[=WHEN], --colour[=WHEN] 输出内容在终端上以彩色显示它们。
-L 列出文件内容不符合指定的样式的文件名称。
-l 列出匹配模式的文件名称,
-m NUM, --max-count=NUM 在NUM条匹配的行之后停止读取文件。
-o 仅打印匹配行的匹配(非空)部分,每个这样的部分都在单独的输出行上。
-q 安静;不显示任何信息。
-s 禁止显示有关不存在或不可读文件的错误消息。
输出线前缀控制
-b 在输出的每一行之前,在输入文件中打印基于0的字节偏移量。如果指定了-o,则打印匹配部分本身的偏移量。
-H 打印每个匹配项的文件名。
-h 查询多文件时不显示文件名。
--label=LABEL 显示实际上来自标准输入的输入作为来自文件LABEL的输入。
-n 列出所有的匹配行,显示行号
-T, --initial-tab 确保实际行内容的第一个字符位于制表位上,以便制表符的对齐看起来很正常。
-u, --unix-byte-offsets 报告Unix样式的字节偏移量。
-Z, --null 输出零字节(ASCII NUL字符),而不是通常在文件名后的字符。
上下文线控制
-A NUM, --after-context=NUM 匹配行后打印NUM行尾随上下文。
-B NUM, --before-context=NUM 在匹配行之前打印前导上下文的NUM行。
-C NUM, -NUM, --context=NUM 打印NUM行输出上下文。
--group-separator=SEP 使用SEP作为组分隔符。默认情况下,SEP是双连字符(-)。
--no-group-separator 使用空字符串作为组分隔符。
文件和目录选择
-a, --text 像对待文本一样处理二进制文件。
--binary-files=TYPE 如果文件的前几个字节指示该文件包含二进制数据,请假定该文件的类型为TYPE。
-D ACTION, --devices=ACTION 如果输入文件是设备,FIFO或套接字,请使用ACTION进行处理。
-d ACTION, --directories=ACTION 如果输入文件是目录,请使用ACTION进行处理。默认情况下,将读取ACTION,即读取目录,就像它们是普通文件一样。
--exclude=GLOB 跳过基本名称与GLOB匹配的文件(使用通配符匹配)。
--exclude-from=FILE 跳过基本名称与从FILE读取的任何文件名名称匹配的文件(使用--exclude中所述的通配符匹配)
--exclude-dir=DIR 从递归搜索中排除与模式DIR匹配的目录。
-I 处理二进制文件,就好像它不包含匹配的数据一样;
--include=GLOB 仅搜索基本名称与GLOB匹配的文件
-r 递归搜索
-R, --dereference-recursive 递归读取每个目录下的所有文件。
其他选择
--line-buffered 在输出上使用行缓冲。这可能会导致性能下降。
-U, --binary 将文件视为二进制文件。
-z, --null-data 将输入视为一组行,每行以零字节(ASCII NUL字符)而不是换行符结尾。