这是 pcregrep 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
pcregrep - 带有 Perl 兼容正则表达式的 grep。
概要
预编译 [选项] [长 选项] [图案] [路径1 路径2 ...] zpcregrep [选项] [长
选项] [图案] [文件1 file2 ...]
商品描述
预编译 以与其他 grep 命令相同的方式搜索文件中的字符模式,
但它使用 PCRE 正则表达式库来支持兼容的模式
使用 Perl 5 的正则表达式。见 前语法(3) 快速参考摘要
模式语法,或 模式(3) 对语法和语义的完整描述
PCRE 支持的正则表达式。
模式,无论是在命令行上提供还是在单独的文件中,都没有
分隔符。 例如:
pcregrep 星期四 /etc/motd
如果您尝试使用分隔符(例如,通过用斜杠包围模式,如
在 Perl 脚本中很常见),它们被解释为模式的一部分。 行情可以
当然用于在命令行上分隔模式,因为它们由
shell,如果模式包含空格或 shell,则确实需要引号
元字符。
任何选项设置后面的第一个参数都被视为单个模式
当两者都不匹配时 -e 也不 -f 存在。 相反,当这些选项中的一个或两个
用于指定模式,所有参数都被视为路径名。 至少其中之一 -e,
-f,或者必须提供参数模式。
如果没有指定文件, 预编译 读取标准输入。 标准输入也可以
由一个由单个连字符组成的名称引用。 例如:
pcregrep 一些模式 /file1 - /file3
默认情况下,匹配模式的每一行都被复制到标准输出,如果
有多个文件,每行开头输出文件名,后面跟着
由一个冒号。 但是,有些选项可以改变方式 预编译 行为。 在
特别是, -M 选项可以搜索跨越线的模式
边界。 定义线边界的内容由 -N (- 新队) 选项。
用于缓冲正在扫描的文件的内存量由
可以设置的参数 - 缓冲区大小 选项。 这个的默认值
参数指定时 预编译 已构建,默认默认为 20K。 一块
使用此大小三倍的内存(以允许缓冲“之前”和“之后”
行)。 如果一行溢出缓冲区,则会发生错误。
模式不能超过 8K 或 BUFSIZ 字节,以较大者为准。 BUFSIZ 是
定义于 . 当有多个模式时(通过使用指定 -e
和 -f),每个模式都按照定义的顺序应用于每一行,
除了所有的 -e 在之前尝试模式 -f 图案。
默认情况下,只要一个模式与一行匹配,就不会考虑其他模式。
但是,如果 - 颜色 (或 - 颜色) 用于给匹配的子串着色,或者如果 - 只要-
匹配, --文件偏移量或 --线偏移 用于只输出行的一部分
匹配(字面显示,或作为偏移量),扫描立即恢复
在匹配之后,以便可以在同一行上找到更多匹配。 如果有
多个模式,它们都在该行的其余部分进行了尝试,但是模式
跟随匹配的那个没有在行的较早部分尝试。
这种行为意味着指定多个模式的顺序会影响
使用上述选项之一时的输出。 这不再是相同的行为
GNU grep,它现在设法显示较晚模式的较早匹配项(只要
没有重叠)。
可以匹配空字符串的模式被接受,但空字符串匹配永远不会
认可。 一个例子是模式“(超级)?(人)?”,其中所有组件都是
可选的。 此模式查找所有出现的“super”和“man”; 输出不同
当只显示匹配的子字符串时,与“super|man”匹配。
如果 LC_ALL or LC_CTYPE 设置环境变量, 预编译 使用该值设置一个
调用 PCRE 库时的语言环境。 这 --区域设置 选项可用于覆盖它。
zpcregrep 是一个包装脚本,允许 pcregrep 处理 gzip 压缩文件。
客户服务 用于 压缩的 FILES
可以编译 预编译 以便它使用 libz进行 or 库2 读取文件
名字以 。广州 or Bz2。, 分别。 您可以查看您的二进制文件是否支持
对于这些文件类型中的一种或两种,通过使用 - 帮帮我 选项。 如果
不存在适当的支持,文件被视为纯文本。 标准输入是
总是这样对待。
BINARY FILES
默认情况下,在前 1024 个字节中包含二进制零字节的文件是
识别为二进制文件,并进行特殊处理。 (GNU grep 也识别二进制
文件。)见 --二进制文件 一种改变方式的选择
处理二进制文件。
配置
某些选项出现的顺序会影响输出。 例如,两者都
-h 和 -l 选项影响文件名的打印。 以命令中稍后出现的为准
行将生效。 类似地,除非在下面注明,如果一个选项
给出两次,使用后面的设置。 选项的数值后可以跟
K 或 M,分别表示乘以 1024 或 1024*1024。
-- 这将终止选项列表。 如果下一个项目在
命令行以连字符开头,但不是一个选项。 这允许
处理以连字符开头的模式和文件名。
-A 数, --在上下文之后=数
输出 数 每个匹配行之后的上下文行。 如果文件名和/或
正在输出行号,使用连字符分隔符代替冒号
上下文行。 每组行之间输出包含“--”的行,
除非它们实际上在输入文件中是连续的。 的价值 数 is
预计会比较小。 然而, 预编译 保证高达 8K
以下文本可用于上下文输出。
-a, - 文本
将二进制文件视为文本。 这相当于 --二进制文件=文本.
-B 数, --之前上下文=数
输出 数 每个匹配行之前的上下文行。 如果文件名和/或
正在输出行号,使用连字符分隔符代替冒号
上下文行。 每组行之间输出包含“--”的行,
除非它们实际上在输入文件中是连续的。 的价值 数 is
预计会比较小。 然而, 预编译 保证高达 8K
可用于上下文输出的前文。
--二进制文件=字
指定如何处理二进制文件。 如果单词是“二进制”(
默认),对二进制文件执行模式匹配,但唯一的输出是
"二进制文件匹配成功时匹配”。如果单词是“text”,则
相当于 -a or - 文本 选项,二进制文件以相同的方式处理
与任何其他文件一样。 在这种情况下,当匹配成功时,输出可能是
二进制垃圾,如果发送到终端会产生不良影响。 如果这个词
是“非匹配”,相当于 -I 选项,二进制文件不是
完全处理; 他们被认为不感兴趣。
--缓冲区大小=数
设置控制用于缓冲文件的内存量的参数
正在被扫描。
-C 数, --上下文=数
输出 数 每个匹配行之前和之后的上下文行。 这个
相当于同时设置 -A 和 -B 到相同的值。
-c, - 数数
不要从正在扫描的文件中输出单独的行; 反而
输出本来会显示的行数。 如果没有线
选择后,输出数字零。 如果正在扫描多个文件,则会出现
count 是每个的输出。 然而,如果 --带匹配的文件 选项是
也使用,只列出那些计数大于零的文件。 什么时候
-c 使用, -A, -B及 -C 选项被忽略。
- 颜色, - 颜色
如果此选项不带任何数据给出,则相当于“--colour=auto”。
如果需要数据,必须在同一个 shell 项中给出,用一个
等号。
--颜色=折扣值, --颜色=折扣值
此选项指定在什么情况下匹配的行部分
输出中的图案应该是彩色的。 默认情况下,输出不是
有色。 值(可选,见上文)可以是“从不”、“总是”或
“汽车”。 在后一种情况下,只有在标准输出为
连接到一个终端。 启用着色时使用更多资源,
因为 预编译 必须在一行中搜索所有可能的匹配项,而不仅仅是一个,
以便为它们全部着色。
使用的颜色可以通过设置环境变量来指定
PCREGREP_COLOUR 或 PCREGREP_COLOR。 这个变量的值应该是一个字符串
由分号分隔的两个数字。 它们被直接复制到
用于在终端上设置颜色的控制字符串,因此您有责任
确保它们有意义。 如果没有设置任何环境变量,则
默认值为“1;31”,显示红色。
-D 行动, --设备=行动
如果输入路径不是常规文件或目录,则“action”指定它如何
是要处理的。 有效值为“读取”(默认)或“跳过”(静默
跳过路径)。
-d 行动, --目录=行动
如果输入路径是目录,则“action”指定如何处理它。
有效值为“读取”(非 Windows 环境中的默认值,对于
与 GNU grep 兼容)、“递归”(相当于 -r 选项),或“跳过”
(默默跳过路径,Windows 环境默认)。 在“阅读”中
在这种情况下,目录被当作普通文件读取。 在一些经营
系统读取这样的目录的效果是立即结束文件;
在其他情况下,它可能会引发错误。
-e 模式, --正则表达式=模式, --正则表达式=模式
指定要匹配的模式。 此选项可按顺序多次使用
指定几个模式。 它也可以用作指定单个
以连字符开头的模式。 什么时候 -e 使用,不采用参数模式
从命令行; 所有参数都被视为文件名。 没有
限制模式的数量。 它们按顺序应用于每一行
它们被定义直到一个匹配。
If -f 用于 -e,首先匹配命令行模式,然后是
文件中的模式,与这些选项的顺序无关
被指定。 注意多次使用 -e 与单一模式不同
有替代品。 例如,X|Y 查找一行中的第一个字符
X 或 Y,而如果分别给出这两种模式,先用 X, 预编译
如果 X 存在,则找到 X,即使它在行中跟随 Y。 只有当它找到 Y
该行中没有 X。 这仅在您使用时才重要 -o or - 颜色
显示匹配的行的部分。
- 排除=模式
名称与模式匹配的文件(但不是目录)将被跳过
正在处理。 这适用于所有文件,无论是否在命令行中列出,
从...获取 --文件列表,或通过扫描目录。 该模式是一个 PCRE
正则表达式,并与文件名的最后一个组成部分匹配,
不是整个路径。 这 -F, -w及 -x 选项不适用于此模式。
可以多次给出该选项以指定多个
模式。 如果文件名同时匹配 - 包括 和 - 排除 模式,它
被排除在外。 此选项没有缩写形式。
--排除-从=文件名
将文件的每个非空行视为 - 排除 选项。 什么
读取文件时构成换行符是操作系统的默认值。
- - 新队 option 对这个选项没有影响。 这个选项可能会被给予更多
不止一次以指定要读取的文件数量。
--排除目录=模式
名称与模式匹配的目录将被跳过而不进行处理,
无论设置如何 -递归 选项。 这适用于所有目录,
是否在命令行中列出,获取自 --文件列表,或通过扫描
父目录。 该模式是一个 PCRE 正则表达式,并且匹配
针对目录名称的最后一部分,而不是整个路径。 这 -F,
-w及 -x 选项不适用于此模式。 该选项可以给出任何
指定多个模式的次数。 如果一个目录
都匹配 --include-目录 和 --排除目录,排除在外。 没有短
此选项的表格。
-F, --固定字符串
将每个数据匹配模式解释为固定字符串列表,由
换行,而不是作为正则表达式。 什么构成换行符
这个目的是由控制 - 新队 选项。 该 -w (匹配作为一个词)和
-x (匹配整行)选项可以与 -F. 它们适用于每个
固定字符串。 如果在其中找到任何固定字符串,则选择一行
(受制于 -w or -x,如果存在)。 此选项仅适用于
与文件内容匹配; 它不适用于模式
由任何指定的 - 包括 or - 排除 选项。
-f 文件名, --文件=文件名
从文件中读取模式,每行一个,并将它们与
输入。 读取文件时构成换行符的是操作
系统默认。 这 - 新队 option 对这个选项没有影响。 尾随
从每一行中删除空格,并忽略空白行。 一个空的
文件不包含任何模式,因此不匹配任何内容。 另见评论
关于多个模式与具有替代方案的单一模式
的描述 -e 以上。
如果多次给出此选项,则读取所有指定的文件。 一个数据
如果任何模式匹配,则输出 line。 文件名可以为“-”
参考标准输入。 什么时候 -f 使用,指定的模式
命令行使用 -e 也可能存在; 他们在文件之前被测试
模式。 但是,没有从命令行中获取其他模式; 全部
参数被视为要搜索的路径的名称。
--文件列表=文件名
读取要从给定的文件和/或目录扫描的列表
文件,每行一个。 从每一行中删除尾随空格,并留空
行被忽略。 这些路径在列出的任何路径之前处理
命令行。 文件名可以用“-”来表示标准输入。
If - 文件 和 --文件列表 都指定为“-”,首先读取模式。
这仅在标准输入是终端时有用,从终端进一步
可以在文件结束指示后读取行(文件列表)。 如果这
选项被多次给出,所有指定的文件都被读取。
--文件偏移量
不显示匹配的行或部分行,而是将每个匹配显示为
从文件开头的偏移量和长度,用逗号分隔。 在这
模式,不显示上下文。 那就是 -A, -B及 -C 选项被忽略。 如果
一行中有多个匹配项,每个匹配项都单独显示。 这个
选项与 --线偏移 和 --仅匹配.
-H, --with-文件名
搜索时强制在输出行的开头包含文件名
单个文件。 默认情况下,在这种情况下不显示文件名。 用于匹配
行,文件名后跟一个冒号; 对于上下文行,连字符
使用分隔符。 如果一个行号也被输出,它跟在文件后面
名称。
-h, --无文件名
搜索多个文件时禁止输出文件名。 默认情况下,
搜索多个文件时会显示文件名。 对于匹配线,
文件名后跟一个冒号; 对于上下文行,使用连字符分隔符。
如果还输出行号,则它跟在文件名之后。
- 帮帮我 输出一条帮助消息,提供命令选项和文件类型的简要详细信息
支持,然后退出。 命令行上的任何其他内容都将被忽略。
-I 将二进制文件视为永不匹配。 这相当于 --二进制-
档=不匹配.
-i, --忽略大小写
在比较过程中忽略大写/小写区别。
- 包括=模式
如果有的话 - 包括 指定了模式,处理的唯一文件是
那些匹配模式之一(并且不匹配 - 排除 图案)。
此选项不影响目录,但适用于所有文件,无论是
在命令行上列出,从 --文件列表,或通过扫描
目录。 该模式是一个 PCRE 正则表达式,并与
文件名的最后一部分,而不是整个路径。 这 -F, -w及 -x
选项不适用于此模式。 该选项可以给出任意数量的
次。 如果文件名同时匹配 - 包括 和 - 排除 模式,它是
排除在外。 此选项没有缩写形式。
--包括-来自=文件名
将文件的每个非空行视为 - 包括 选项。 什么
为此目的构成换行符是操作系统的默认值。 这
- 新队 option 对这个选项没有影响。 此选项可能被赋予任何
次数; 读取所有文件。
--include-目录=模式
如果有的话 --include-目录 模式被指定,唯一的目录
处理的是那些匹配模式之一(并且不匹配
--排除目录 图案)。 这适用于所有目录,无论是否列在
命令行,从 --文件列表,或通过扫描父目录。 这
模式是一个 PCRE 正则表达式,并与最终组件匹配
目录名,而不是整个路径。 这 -F, -w及 -x 选项不
适用于这种模式。 可以多次给出该选项。 如果一个
目录匹配两者 --include-目录 和 --排除目录,排除在外。 有
此选项没有简写形式。
-L, --文件不匹配
不输出文件中的行,只输出文件的名称
不包含任何将被输出的行。 每个文件名是
输出一次,在单独的行上。
-l, --带匹配的文件
不输出文件中的行,只输出文件的名称
包含将被输出的行。 每个文件名输出一次,在
单独的一行。 一旦在中找到匹配的行,搜索通常就会停止
一份文件。 然而,如果 -c (count) 选项也被使用,匹配继续
为了获得正确的计数,以及那些至少有一个匹配项的文件
与他们的计数一起列出。 使用此选项 -c 是一种方式
禁止列出没有匹配项的文件。
- 标签=姓名
当文件名
正在输出。 如果未提供,则使用“(标准输入)”。 没有短
此选项的表格。
--行缓冲
当给出这个选项时,输入被逐行读取和处理,并且
每次写入后都会刷新输出。 默认情况下,输入是大块读取的,
除非 预编译 可以确定它正在从终端读取(这是
目前只能在类 Unix 环境中使用)。 输出到终端是
通常由操作系统自动刷新。 这个选项可以
当输入或输出连接到管道并且您不希望
预编译 来缓冲大量数据。 但是,它的使用会影响
性能,以及 -M (multiline) 选项停止工作。
--线偏移
不显示匹配的行或部分行,而是将每个匹配显示为一行
数字、距行首的偏移量和长度。 行号是
以冒号结尾(像往常一样;请参阅 -n 选项),以及偏移量和长度
用逗号分隔。 在此模式下,不显示上下文。 那就是 -A,
-B及 -C 选项被忽略。 如果一行中有多个匹配项,则每个匹配项
其中分别显示。 此选项与 - 文件-
抵消 和 --仅匹配.
--区域设置=地区名称
此选项指定用于模式匹配的语言环境。 它覆盖了
的价值 LC_ALL or LC_CTYPE 环境变量。 如果没有语言环境
指定,使用 PCRE 库的默认值(通常是“C”语言环境)。 有
此选项没有简写形式。
--匹配限制=数
处理一些正则表达式模式可能需要大量的
内存,在某些情况下如果没有足够的可用会导致程序崩溃。
其他模式可能需要很长时间来搜索所有可能的匹配
字符串。 这 PCRE_执行() 被调用的函数 预编译 做匹配
有两个参数可以限制它使用的资源。
- --匹配限制 选项提供了一种限制资源使用的方法,当
处理不匹配的模式,但具有非常大的
他们的搜索树中的可能性数量。 经典的例子是一个模式
使用嵌套的无限重复。 在内部,PCRE 使用一个名为
比赛() 它重复调用(有时递归调用)。 限制由
--匹配限制 强加在此函数在一个过程中被调用的次数
匹配,具有限制可以采取的回溯量的效果
的地方。
- --递归限制 选项类似于 --匹配限制,但代替
限制总次数 比赛() 被调用,它限制了深度
递归调用,这反过来限制了可以使用的内存量。
递归深度比总调用次数要小,因为
不是所有的电话 比赛() 是递归的。 此限制仅在设置时才有用
小于 --匹配限制.
这些选项没有简短的形式。 指定了默认设置
PCRE库编译时,默认默认为10万。
-M, --多行
允许模式匹配多于一行。 当给出这个选项时,模式
可能有用地包含文字换行符和 ^ 的内部出现
和 $ 字符。 成功匹配的输出可能包含多个
行,最后一行是比赛结束的那一行。 如果匹配
字符串以换行序列结束,输出在该行的末尾结束。
设置此选项后,将在“多行”模式下调用 PCRE 库。 那里
是对可以匹配的行数的限制,由
预编译 在扫描时缓冲输入文件。 然而, 预编译 确保
至少 8K 个字符或文档的其余部分(以较短者为准)
可用于前向匹配,类似之前的 8K 字符(或
之前的所有字符(如果少于 8K)都保证可用
对于后视断言。 当输入被逐行读取时,此选项不起作用
线(见 --行缓冲.)
-N 换行符类型, - 新队=换行符类型
PCRE 库支持五种不同的约定来指示
线。 它们是单字符序列 CR(回车)和 LF
(linefeed),两个字符的序列 CRLF,一个“anycrlf”约定,它
承认上述三种类型中的任何一种,以及“任何”约定,其中
任何 Unicode 行结束序列都被假定为结束一行。 Unicode 序列
就是刚才提到的三个,加上VT(垂直制表符,U+000B),FF(换页,
U+000C)、NEL(下一行,U+0085)、LS(行分隔符,U+2028)和 PS(段落
分隔符,U+2029)。
构建 PCRE 库时,会指定默认的行结束序列。
这通常是操作系统的标准顺序。 除非
此选项另有规定, 预编译 使用库的默认值。 这
此选项的可能值为 CR、LF、CRLF、ANYCRLF 或 ANY。 这使它
可以使用 预编译 扫描来自其他环境的文件
无需修改它们的行尾。 如果正在扫描的数据
不同意此选项设置的约定, 预编译 可能表现在
奇怪的方式。 请注意,此选项不适用于由 -f,
--排除从或 --包含-来自 选项,预计将使用
操作系统的标准换行序列。
-n, - 电话号码
在每个输出行前面加上它在文件中的行号,后面跟一个冒号
匹配行或上下文行的连字符。 如果文件名也被
输出,它在行号之前。 这个选项是强制的,如果 --线偏移 is
用过的。
--无吉特 如果 PCRE 库的构建支持即时编译(即
加速匹配), 预编译 自动使用这个,除非它是
在构建时明确禁用。 此选项可用于禁用使用
在运行时进行 JIT。 它用于测试和解决问题。 它
在正常使用中永远不需要。
-o, --仅匹配
仅显示与模式匹配的行的一部分,而不是整行。
在此模式下,不显示上下文。 那就是 -A, -B及 -C 选项是
忽略。 如果一行中有多个匹配项,则显示每个匹配项
分别地。 如果 -o 是结合 -v (反转匹配的意义找到
不匹配的行),不产生输出,但设置了返回码
适当地。 如果该行的匹配部分为空,则不输出任何内容
除非正在打印文件名或行号,在这种情况下它们是
显示在其他空行上。 此选项与 - 文件-
抵消 和 --线偏移.
-o数, --仅匹配=数
仅显示与捕获括号匹配的行部分
给定的数字。 最多支持 32 个捕获括号,并且 -o0 是
相当于 -o 没有号码。 因为这些选项可以在没有
参数(见上文),如果存在参数,则必须以相同的方式给出
shell 项,例如 -o3 或 --only-matching=2。 给予的意见
上述非论证情况也适用于本案。 如果指定的捕获
括号在模式中不存在,或者没有在匹配中设置,什么都没有
除非正在打印文件名或行号,否则将输出。
如果多次给出该选项,则输出多个子串,在
订购选项。 例如,-o3 -o1 -o3 导致子串
通过捕获括号 3 和 1 然后再次捕获 3 进行匹配以输出。 经过
默认情况下,没有分隔符(但请参阅下一个选项)。
--om-分隔符=文本
为多次出现指定分隔字符串 -o. 默认是一个
空字符串。 分隔字符串从不着色。
-q, - 安静的
安静地工作,即除了错误消息外不显示任何内容。 退出状态
指示是否找到任何匹配项。
-r, -递归
如果任何给定的路径是一个目录,递归扫描它包含的文件,取
注意任何 - 包括 和 - 排除 设置。 默认情况下,目录被读取为
一个普通文件; 在某些操作系统中,这会立即结束文件。
此选项是设置 -d “递归”选项。
--递归限制=数
参见 --匹配限制 以上。
-s, --无消息
禁止有关不存在或不可读文件的错误消息。 这些文件是
悄悄地跳过。 但是,即使找到匹配项,返回码仍为 2
在其他文件中。
-u, --utf-8
在 UTF-8 模式下运行。 此选项仅在已编译 PCRE 时可用
支持 UTF-8。 所有模式(包括那些用于任何 - 排除 和
- 包括 选项)并且所有被扫描的主题行必须是有效的字符串
UTF-8 字符。
-V, - 版
写下版本号 预编译 和标准的 PCRE 库
输出然后退出。 命令行上的任何其他内容都将被忽略。
-v, --反转匹配
反转匹配的意义,使行 而不去 匹配任何
模式是那些被发现的。
-w, --word-正则表达式, --word-正则表达式
强制模式只匹配整个单词。 这等价于 \b 在
模式的开始和结束。 此选项仅适用于
与文件内容匹配; 它不适用于模式
由任何指定的 - 包括 or - 排除 选项。
-x, --line-正则表达式, --line-正则表达式
强制锚定模式(每个模式必须在
一行),此外,要求它们匹配整行。 这是等价的
在每个替代分支的开始和结束处都有 ^ 和 $ 字符
每个图案。 此选项仅适用于匹配的模式
文件的内容; 它不适用于任何指定的模式
- 包括 or - 排除 选项。
环境 变数
环境变量 LC_ALL 和 LC_CTYPE 按此顺序检查语言环境。
使用设置的第一个。 这可以被覆盖 --区域设置 选项。 如果不
设置区域设置,则使用 PCRE 库的默认值(通常为“C”区域设置)。
新行
- -N (- 新队) 选项允许 预编译 扫描具有不同换行约定的文件
从默认。 写入标准输出的输入文件的任何部分都是
使用它们在输入中的任何换行序列相同地复制。 然而
此选项的设置不影响由指定的文件的解释 -f,
--排除从或 --包含-来自 选项,假定使用操作系统的
标准的换行顺序,也不影响 预编译 写入
标准错误和输出流的信息性消息。 对于这些,它使用
字符串 "\n" 表示换行符,依赖 CI/O 库将其转换为
适当的顺序。
配置 兼容性
许多短形式和长形式 预编译的选项与 GNU 中的相同 grep的
程序。 任何形式的长选项 --xxx-正则表达式 (GNU 术语)也可用作
--xxx-正则表达式 (PCRE 术语)。 然而 --文件列表, --文件偏移量, --include-目录,
--线偏移, --区域设置, --匹配限制, -M, --多行, -N, - 新队, --om-分隔符,
--递归限制, -u及 --utf-8 选项特定于 预编译,就像使用
--仅匹配 带有捕获括号编号的选项。
尽管大多数常见选项的工作方式相同,但有一些在 预编译.
例如 - 包括 option 的参数是 GNU 的 glob grep的,但是一个常规的
表达为 预编译. 如果两者都 -c 和 -l 给出了选项,GNU grep 只列出文件
名字,没有计数,但是 预编译 给出计数。
配置 与 数据
有四种不同的方式可以指定带有数据的选项。 如果一个短
使用表单选项,数据可能会紧随其后,或者(有一个例外)在下一个
命令行项。 例如:
-f/一些/文件
-f /一些/文件
例外是 -o 选项,该选项可能带有或不带有数据。 因为这,
如果数据存在,它必须紧跟在同一项目中,例如 -o3。
如果使用长格式选项,数据可能会出现在同一个命令行项目中,
由等号分隔,或者(有两个例外)它可能出现在下一个
命令行项。 例如:
--file=/一些/文件
--file /一些/文件
但是请注意,如果您想提供一个以 ~ 开头的文件名作为 shell 中的数据
命令,并让 shell 将 ~ 扩展到主目录,您必须将文件名分开
从选项中,因为外壳不会特别对待 ~ 除非它在开头
一个物品。
上述情况的例外是 - 颜色 (或 - 颜色) 以及 --仅匹配 选项,对于
其中数据是可选的。 如果这些选项之一确实有数据,则必须在
第一种形式,使用等号字符。 除此以外 预编译 将假设它没有
数据。
匹配 错误
可以提供一个需要很长时间才能匹配的正则表达式
某些线路。 此类模式通常涉及嵌套的无限重复,例如:
(a+)*\d 当与没有最后一位数字的 a 行匹配时。 PCRE匹配函数
具有导致它在这些情况下中止的资源限制。 如果发生这种情况,
预编译 输出错误消息和导致问题的行到标准
错误流。 如果有超过 20 个这样的错误, 预编译 放弃。
- --匹配限制 选项 预编译 可用于设置整体资源限制; 那里
是第二个选项称为 --递归限制 对内存量设置限制
(通常堆栈)使用(请参阅上面对这些选项的讨论)。
诊断
如果找到任何匹配项,退出状态为 0,如果未找到匹配项,则为 1,语法为 2
错误、过长的行、不存在或无法访问的文件(即使在
其他文件)或太多匹配错误。 使用 -s 抑制错误消息的选项
关于无法访问的文件不会影响返回码。
使用 onworks.net 服务在线使用 pcregrep