[英]grep command-line with “or” from dos window (gnu grep)
我正在尝试使用GNU Grep(为Win32目标编译的grep)为windows7创建一个.bat文件。 我在使用|的表达式的语法时遇到问题 (或),因为DOS命令认为我正在使用它作为管道/重定向。 这是一个示例输入foo.txt:
aaa
bbb
ccc
aaa bbb ccc
所以我尝试了一个简单的测试:
grep aaa foo.txt
结果:
aaa
aaa bbb ccc
到现在为止还挺好。 但我真的需要提取aaa OR bbb,所以我使用这个表达式:(aaa | bbb)ex:
grep (aaa|bbb)
给我:
'bbb)' is not recognized as an internal or external command,
operable program or batch file.
我尝试了各种报价,但尚未找到合适的组合。 我需要保护字符串不受DOS解释器的影响,但仍然对grep有用。 我阅读了手册页和Web文档,似乎没有什么适合我正在尝试做的事情。
有谁知道怎么做到这一点? 谢谢。
需要引号并使用\\
转义管道:
grep "aaa\|bbb" foo.txt
$ cat foo.txt
aaa
bbb
ccc
aaa bbb ccc
$ grep "aaa\|bbb" foo.txt
aaa
bbb
aaa bbb ccc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.