我有一个包含正则表达式的文件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
答案 0 :(得分:0)
您的grep命令没有任何问题,问题只是您搜索的文件没有任何与模式匹配的文本。
问题似乎是您直接从命令行复制了表达式,但是当您在命令行中使用它们时,您必须添加被shell剥离的引用字符。将表达式放在文件中时,不必使用引号字符。文件中的内容需要是一个有效的正则表达式,没有额外的引号字符。
您需要从表达式中删除"
:
((FinalImageInfo|ImageInfo).*){2}
((Process|signal|ready).*){3}
((detected|overlap).*){2}