我试图创build一个Windows 7的.bat文件,使用GNU Grep(为Win32目标编译的grep)。 我遇到了使用|的expression式的语法问题 (或),因为DOS命令认为我正在使用它作为pipe道/redirect。 这是一个示例inputfoo.txt:
aaa bbb ccc aaa bbb ccc
所以我尝试一个简单的testing:
grep aaa foo.txt
结果:
aaa aaa bbb ccc
到现在为止还挺好。 但是我真的需要提取aaa或bbb,所以我使用这个expression式:(aaa | bbb)ex:
grep (aaa|bbb)
给我:
'bbb)' is not recognized as an internal or external command, operable program or batch file.
我已经尝试了各种报价,但还没有达到正确的组合。 我需要从DOS解释器保护string,但它仍然是有用的grep。 我阅读手册页和网页文档,没有什么东西似乎适合我所要做的。
有谁知道如何做到这一点? 谢谢。
需要引号,并用\
逃脱了管道:
grep "aaa\|bbb" foo.txt
$ cat foo.txt aaa bbb ccc aaa bbb ccc $ grep "aaa\|bbb" foo.txt aaa bbb aaa bbb ccc