通常,“查找”命令足以满足您的大多数需求(请参阅标题为“ link:/ windows-Using_the_Find_Command [使用查找命令]的提示”),但是还有一个“查找”命令在那些时候更强大在某些情况下需要查找字符串时。以最简单的形式,Findstr看起来像Find:

C:\> FINDSTR "document" Barry?.tmp

Findstr比Find接受更多的开关,您可以通过键入以下内容来查看完整列表:

C:\> FINDSTR /?

您会发现Find与

|的输出之间的第一个区别Findstr是后者在每个找到的行之前加上在其中找到文件的名称的前缀:(请参见图1。)

image

图1. Findstr与找到的字符串内联显示文件名。

Findstr有十几个可用的开关,但是我将不告诉他们所有这些,而是​​通过Find命令提供的一些更重要的(imo)功能。我要提到的第一件事是您可以同时搜索多个字符串。如果要查找的搜索字符串包含空格,Findstr会假定您要查找string1 or string2 or string3,依此类推。例如,如果要查找包含“ document”或“ text”的所有行,则只需将其分开空格这样的单词:

(请参见图2。)

image

图2.一次搜索两个字符串。

Findstr的另一个不错的功能是可以在子目录中搜索文件。

假设我的\ Temp目录中有Barry1.tmp,而\ Temp \ Temp2目录中有Barry2.tmp。在\ Temp目录中,我可以使用“ / S”

切换为告诉Findstr搜索子目录。看起来像这样:

(请参见图3。)

image

图3.使用/ S搜索子目录。

我可以向您展示很多其他功能,但是最后一个功能确实需要特别注意。那就是使用正则表达式进行搜索的概念。另一个技巧介绍了“正则表达式简介”,但我想向您展示如何在Findstr中使用正则表达式。

假设您要搜索“文档”一词,但只搜索那些出现后带有标点符号(例如逗号或句点)的单词。此类搜索的正则表达式为“ document [,.]”。通过指定“ / R”开关,向Findstr指示您的搜索字符串正在使用正则表达式,然后添加“ / N”开关,以便我们看到行号。您最终得到的结果是:(请参见图4。)

image

图4.使用正则表达式进行搜索。

Findstr还有更多功能,但是我希望我对您的胃口足够大,以备您在需要花一些时间在文件中搜索字符串时开始使用它。

本技巧(13505)适用于Windows 7、8和10。