如何使用findstr在一行中搜索多个字符串

时间:2015-08-20 20:42:48

标签: string batch-file command findstr

所以我希望能够搜索字符串“[FAILED]”和字符串“。”它们都位于文本文件的同一行。我该怎么做?

我试过了:

FINDSTR /C:"[ FAILED ]" /C:"." output_.txt

但它会生成包含任一字符串的行。如果可能的话,我还希望能够从我的发现中排除任何包含数字的行。

2 个答案:

答案 0 :(得分:2)

我已经使用管道回答了我自己的问题,并提出了以下命令:

FINDSTR /C:"[ FAILED ]" output_.txt | FINDSTR /C:"." | FINDSTR /V [0-9]

答案 1 :(得分:1)

使用两个正则表达式搜索字符串可以使用单个FINDSTR获得答案。

一个字符串查找[ FAILED ]后跟.,另一个字符串查找.后跟[ FAILED ]。请注意,必须转义.[文字,并且无需转义]字面值,但这会使意图更加明显。

findstr /r /c:"\[  FAILED  \].*\." /c:"\..*\[  FAILED  \]" output.txt

我不确定哪个更快 - 一个有两个搜索字符串的FINDSTR,或一个由管道连接的两个FINDSTR,每个都有一个搜索字符串。