如何使用FINDSTR获取带有简单OR双引号的行

时间:2013-05-27 15:54:08

标签: regex windows findstr

我正在尝试从目录树中的文件中获取带有单引号或双引号的行。举个例子,我想用一个findtr命令来获取这些行:

  • You should be able to get a "Hello world" program really quick.
  • Enter a value for params 'name' and 'age', please.
  • If no value is entered for 'name' param, the "Hello world" program will throw an exception.

我只能使用单引号(findstr /srn \' *.txt),只有双引号(findstr /srn \^" *.txt),或单引号和双引号(findstr /srn \'\^" *.txt),但我需要单行引号或只用一个命令的双引号。

有关如何实现它的任何想法?

2 个答案:

答案 0 :(得分:3)

Explosion Pills有正确的想法,但没有正确的语法。

尝试转义FINDSTR和CMD解析器的引用时可能会变得棘手。你想要的正则表达式是['\"],但是你需要为CMD解析器转义"

这将有效:

findstr /srn ['\^"] *.txt

这样

findstr /srn "['\"]^" *.txt

这样

findstr /srn ^"['\^"]^" *.txt



由于一个令人讨厌的FINDSTR错误,您有可能无法找到包含该字符串的文件。如果启用了8.3短名称且文件夹包含扩展名超过3个以/S开头的字符的文件,则.txt选项可能无法找到文件。 (例如name.txt2)。有关详细信息,请参阅标有 BUG - Short 8.3文件名可以在What are the undocumented features and limitations of the Windows FINDSTR command?打破/ D和/ S选项 的部分。

答案 1 :(得分:1)

使用字符类

findstr /srn ['\^"] *.txt