如何在 Windows cmd 中使用 git grep 搜索带有一个双引号的字符串

How to search for a string with one double quote with git grep in Windows cmd

问题是带有两个引号的字符串搜索得很好。但!我想在 Windows 的 cmd 上的存储库中查找字符串 "Agent(一个双引号!)。所以我有这个:

git grep "\"Agent\"" > 1.txt(有效!找到所有带有 "Agent" 的字符串)

git grep "\"Agent" > 1.txt(错误!fatal: ambiguous argument '>': unknown revision...

知道如何正确逃脱吗?

在GitCMD或Windowscmd控制台中,可以使用^转义终端内的" :

git grep ""^""Agent" > 1.txt

在GitBash中,你可以简单地使用

git grep '"Agent' > 1.txt

查看我用 "Regex 模式对数据制作的文本:

有趣的是我在 CMD 和 Git Bash 中的发现会将其作为 2 个不同的命令进行拦截。这不仅在 git grep 的情况下,而且 echo 也会有相同的行为。

在这里你可以看到我在 echo 中使用的语法类似于你的语法,它没有写入文件只是打印下一行

现在,当我添加结束引号时,echo 工作正常并写入文件。

现在,如果您想打印单引号,则必须使用双引号作为开始和结束引号,反之亦然。 click here for reference.

现在根据这个文档,在 double-quotes 中包含一个单引号是有效的,这在 grep 的情况下也有效。

但它的反向(用单引号包裹双引号)在 windows CMD 中不起作用,这可能是因为 bash 正在拦截双引号 (")。但是你可以使用 git bash 及以下将正常工作。