Windows提供 findstr
用于搜索文件内容的工具。这些文件内容应该是文本和字符串,但也接受二进制文件。但是搜索二进制文件和内容不会得到很好的结果。在本教程中,我们将研究findstr命令的不同用法类型。请记住,这与Windows find命令不同,后者可以在下面的教程中找到。
如何在Windows下用Find命令从命令行中查找文件中指定的字符串,并举例说明
救命
有关findstr命令的帮助可以通过 /?
选项。
$ findstr /?

语法
findstr命令的语法如下所示。
findstr [OPTIONS] [TERM] [FILENAME]
文件中的搜索字符串
最基本的 findstr在文件中搜索术语的用法。此搜索将使用默认选项,我们将在下一步中查找它们。在本例中,我们只提供字符串和文件名。在本例中,我们将搜索 ismail
在文件中 users.txt
$ findstr "ismail" users.txt

如我们所见,我们提供了双引号中的搜索词或字符串,以防止错误和误用。
忽略大小写
搜索术语时,默认行为区分大小写。区分大小写是指所有提供的字符串大小写都会根据其大小写进行搜索,不会更改大小写。我们可以改变这种行为,根据我们的需要和搜索词的大小写敏感,所以给定的搜索词将匹配所有案件相应。
在本例中,我们将搜索 ISMAIL
在区分大小写的选项中。
$ findstr /I "ISMAIL" users.txt

搜索多个字符串
在前面的示例中,我们提供了一个要搜索的词。在某些情况下,我们可能需要搜索多个词。我们可以提供多个字符串来findstr命令进行搜索。所有给定的字符串都将类似于或。在本例中,我们将搜索术语 ismail
, john
.
$ findstr "ismail john" users.txt

使用正则表达式
正则表达式用于指定字符串的结构,而不是字符串的整个字符。我们可以表示一个字符串的起始字符和结束字符。这些正则表达式可以与findstr命令一起使用。在本例中,我们将搜索以 j
结束于 n
. 我们将启用正则表达式搜索 /R
.
$ findstr /R "j.*n" users.txt

在多个文件中搜索
到目前为止,我们已经在单个文件中搜索到了术语。在大多数情况下,搜索单个文件并不高效。Findstr提供了搜索多个文件的功能。为了搜索多个文件,我们可以使用 *
. 如果我们只想搜索文本文件,我们还可以提供如下扩展名 *.txt
就像下面一样。
$ findstr "a" *.txt

递归搜索多个文件
在前面的示例中,我们搜索了当前工作目录中的所有文件。但是有一个选项,我们将搜索所有当前的工作目录和子目录太。我们可以把它称为递归搜索。我们将寻找 a
在这个例子中递归地。
$ findstr /s "a" *.txt

开始时搜索 生产线
我们可以在行尾搜索一个词或字符串。我们将使用 /B
搜索行乞选项。在本例中,我们将搜索 is
在队伍的开始。
$ findstr /B "is" *.txt
在行尾搜索
另一种搜索文件的方法是在文件末尾进行搜索。我们将使用 /E
在文件末尾搜索的选项。
$ findstr /E "is" *.txt
打印行号
findstr的另一个有用功能是打印带有结果的行号。这将提示匹配的字符串行号。我们可以打印匹配字符串的行号 /N
选项如下。
$ findstr /N "is" *.txt
