grep不为包含正则表达式的文件提供输出

时间:2015-09-14 02:58:51

标签: windows grep

我有一个包含正则表达式的文件regular.txt,如下所示:

("(FinalImageInfo|ImageInfo)".*){2}
("(Process|signal|ready)".*){3}
("(detected|overlap)".*){2}

我的示例测试文件: test1.txt的:

AAA BBB CCCC
DDDD FinalImageInfo EEE ImageInfo FFFF
GGGGG HHHHHH

当我使用regular.txt使用grep搜索文件中的字符串时,grep不提供任何输出,甚至不提供错误消息。我尝试了以下命令:

grep  -E -f regular.txt *.txt 

有谁知道为什么我的grep命令不能处理文件中的正则表达式?

注意:我在Windows 7上测试grep,grep版本是6.1.0.209

1 个答案:

答案 0 :(得分:0)

您的grep命令没有任何问题,问题只是您搜索的文件没有任何与模式匹配的文本。

问题似乎是您直接从命令行复制了表达式,但是当您在命令行中使用它们时,您必须添加被shell剥离的引用字符。将表达式放在文件中时,不必使用引号字符。文件中的内容需要是一个有效的正则表达式,没有额外的引号字符。

您需要从表达式中删除"

((FinalImageInfo|ImageInfo).*){2}
((Process|signal|ready).*){3}
((detected|overlap).*){2}