对于外行来说,像 findstr 这样的模式搜索工具可能看起来没什么用。但是,当处理系统生成的日志文件或包含数百行文本的命令行输出时,findstr 正是您需要的工具。
Linux 操作系统的用户可能已经熟悉 Grep 命令的令人难以置信的实用程序,并且 findstr 在 Microsoft Windows 中发挥着类似的作用。您可以使用管道将其与 其他命令 结合使用,或者直接运行它来解析多个文本文件。让我们通过几个例子来看看 findstr 是如何工作的。
使用 Findstr 命令
基本语法很简单 - findstr
findstr SFC example1.txt
此命令将查找并输出包含搜索字符串 SFC 的所有行。请注意,默认情况下,findstr 区分大小写,因此任何提及 SFC 的内容都不会匹配。
参数
您可以通过包含可选参数来进一步自定义 findstr 的工作方式。 /B 或 /I 等开关修改 findstr 的行为,对搜索施加附加条件。例如:
findstr /I SFC example1.txt
包含 /I 作为参数会使搜索不区分大小写,从而允许该术语的所有提及都匹配,无论其大小写如何。您可以在微软官方文档 中找到findstr的所有参数列表。
可选模式
参数并不是自定义 findstr 的唯一方法。例如,将
findstr“SFC DISM”example1.txt
以上将返回包含任一术语的匹配行。这在查找具有不同名称的项目的提及时非常有用。
正则表达式
Findstr 能够搜索多个文件。将
findstr SFC *.txt
使用通配符将正则表达式与当前目录及其子目录中的所有文本文件相匹配。结果同样按文件名分隔,让您可以看到哪一行源自哪个文件。
管道
与大多数 cmd 命令一样,findstr 也可以用于其他命令的输出。只需在目标命令末尾添加一个管道并调用不带
目录 | findstr.txt
这对 dir 命令的输出运行 findstr 搜索,返回以 .txt 结尾的文件列表。当然,这个特定的例子在实践中是没有用的,因为 dir 已经可以使用正则表达式定位相同类型的文件。
也可以采用将输出重定向到文本文件 的较长路线,然后在文本文件上使用findstr,但这样更容易省去中间人。
Findstr在Windows中的应用
仅从语法来看,findstr 的明显用途就显而易见。您可以查找具有特定文本字符串的文本文件,或者查看文件中是否包含特定字符串。
这虽然在理论上有用,但除了极少数情况外很少使用。在 Google Docs 等云服务时代,大多数人不再拥有大量文本文件。
findstr 的实际应用更加微妙,并且涉及更强大的结果。以下是一些更有趣的例子。
查找特定类型的文件
dir 命令已包含使用正则表达式搜索文件名的选项。但使用 findstr,您可以搜索共享其他属性的文件,例如创建时间或日期。
假设错误发生在下午 06:43,并且您想要找到当时创建的所有日志文件。仅使用 dir 命令,您将必须手动筛选结果或获取所有日志文件并进行比较。使用findstr,这变成了一个简单的命令。
目录 | findstr 06:43
您可以尝试相同的技巧来查找在特定日期创建的文件或获取目录列表。
目录 | findstr DIR
使用 Netstat 过滤网络信息.
网络统计 是一个方便的 Windows 命令,它为您提供有关计算机网络连接的所有信息 - 信息太多,这就是 findstr 的用武之地。
通过将 netstat 的输出传送到 findstr 中,您可以搜索具有特定属性的连接。例如,您可以通过以下方式获取所有已建立连接的列表。
netstat | findstr 已建立
这个技巧在诊断网络问题时很有用。您甚至可以将 findstr 与应用程序 PID 结合使用来查找特定进程打开的所有连接。
netstat -o | findstr 13120
获取特定IP地址
ipconfig 命令可让您查看系统所有网络接口的详细信息,包括 IP 地址。您可以使用 findstr 提取特定类型的 IP 地址,而无需滚动浏览整个内容。
ipconfig | findstr 临时
您可以扩展此方法以从 ipconfig 获取从子网掩码到网关地址的任何信息。
分析脚本文件
无论您使用哪种编程语言进行编码,脚本文件最终都只是文本。这意味着您可以使用 findstr 来分析脚本并检索特定部分,而无需搜索整个代码。
假设我们想查看 if 语句在特定脚本中的使用情况。我们可以使用以下命令:
findstr if script.ahk
这不仅会显示使用 if 语句的行,还会显示所使用的表达式。您还可以包含 /N 参数来显示行号,这对于脚本文件来说非常方便。
findstr /N if script.ahk
Findstr 值得使用吗?
浏览命令行界面的主要困难是需要筛选的文本量。 Findstr 是提取有用信息和过滤垃圾的必备工具。
由于所有终端命令都给出基于文本的输出,因此 findstr 始终可用于定位相关数据。从 排除网络问题 到查找正确的文件,findstr 使每个操作都变得更加高效。.
即使不与其他命令协同作用,findstr 也能因其遍历文本文件内容的能力而很有帮助。您可以在机器生成的日志文件中找到特定错误,或检索复杂脚本中的代码部分。
简而言之,findstr 是任何高级 Windows 用户的必备工具,尤其是想要熟悉命令行界面的用户。
.