1

我正在尝试使用 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 有用。我阅读了手册页和网络文档,似乎没有什么适合我想要做的。

有谁知道如何完成这项工作?谢谢。

4

1 回答 1

3

需要引号并使用以下命令转义管道\

grep "aaa\|bbb" foo.txt

$ cat foo.txt
aaa
bbb
ccc
aaa bbb ccc

$ grep "aaa\|bbb" foo.txt
aaa
bbb
aaa bbb ccc
于 2012-11-14T15:29:25.583 回答