gpt4 book ai didi

regex - 来自 dos 窗口的带有 "or"的 grep 命令行 (gnu grep)

转载 作者:可可西里 更新时间:2023-11-01 11:35:05 27 4
gpt4 key购买 nike

我正在尝试使用 GNU Grep(为 Win32 目标编译的 grep)为 windows7 创建一个 .bat 文件。我在使用 | 的表达式的语法上遇到问题(或),因为 DOS 命令认为我将其用作管道/重定向。这是一个示例输入 foo.txt:

aaa
bbb
ccc
aaa bbb ccc

所以我尝试了一个简单的测试:

grep aaa foo.txt

结果:

aaa
aaa bbb ccc

到目前为止,还不错。但我真的需要提取 aaa 或 bbb,所以我使用这个表达式:(aaa|bbb)例如:

grep (aaa|bbb)

给我:

'bbb)' is not recognized as an internal or external command,
operable program or batch file.

我尝试了各种引用,但还没有找到正确的组合。我需要保护字符串不受 DOS 解释器的影响,但它仍然对 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

关于regex - 来自 dos 窗口的带有 "or"的 grep 命令行 (gnu grep),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381783/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com