【问题标题】:escaping quotes in findstr在 findstr 中转义引号
【发布时间】:2016-05-16 20:05:33
【问题描述】:

需要对以下findstr 命令进行哪些更改才能返回目录和子目录中包含的所有文件中所有使用确切短语"port" : " 的列表?

findstr /I "port" : " *  

显然,转义引号是必要的,但是需要什么特定的语法来转义引号,同时仍然让表达式返回预期值?

这是在 Windows 8.1 上使用 cmd.exe

【问题讨论】:

    标签: windows command-line cmd findstr


    【解决方案1】:

    您需要转义双引号,并且由于您的正则表达式使用空格,因此请使用/c 开关来传递搜索字符串而不是空格分隔的正则表达式:

    findstr /I /c:"port\" : " *
    

    来自here

    多个正则表达式可以用空格分隔,只是 与分隔多个单词相同(假设您没有指定 使用 /C 进行文字搜索),但如果使用正则表达式,这可能没有用 本身包含空格。

    【讨论】:

    • 这是一个单引号:'。您实际上是在谈论双引号。
    • 这不起作用。您的建议结果会生成"could_be-any_string" : " 的每个实例。实际上,在发布此 OP 之前,我已经尝试过您的建议。如果有人想回答这个问题,请在您机器上的目录中测试它,该目录包含要匹配的指定字符串的文件。谢谢。
    • 已更新。 /c 开关似乎获得了所需的行为。
    • 我认为开始和结束引号应该是搜索字符串的一部分,所以你可能想要/c:"\"port\" : \""
    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2020-07-08
    相关资源
    最近更新 更多