繁体   English   中英

grep命令行,带有“或”来自dos窗口(gnu grep)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM