Windows 命令行最强搜索术:find 与 findstr 一看就会

Windows 命令行最强搜索术:find 与 findstr 一看就会

在 Windows 的命令提示符(CMD)里,我们有两个常常用来查找文件内容的命令:find 和 findstr。
它俩的作用有点像“文件里的 Ctrl + F”,但一个简单、一个强劲。下面我们一起来看看怎么用。


一、find命令 —— 简单好用的小工具

find 是最基础的搜索命令,用来在文件里找有没有某个字符串。

✅ 基本格式:

find [参数] "要找的内容" [文件名]

常见参数:

参数

意思

/i

忽略大小写(列如 “Error” 和 “error” 当成一样)

/n

显示行号

/v

反选,显示不包含关键字的行

/c

只显示匹配的行数,不显示内容

举几个例子:

1️⃣ 找出 server.log 文件里含有“error”的行:

find "error" server.log

2️⃣ 不区分大小写:

find /i "error" server.log

3️⃣ 只看有几行匹配:

find /c "error" server.log

4️⃣ 反着来,显示不含“error”的行:

find /v "error" server.log

5️⃣ 顺便显示行号:

find /n "error" server.log

小结一下:
find 命令简单、直接,适合查一个文件、一个关键字的情况。


二、findstr命令 —— 升级版,更强更灵活

findstr 就是 find 的进阶版,功能更全。
它不仅能查,还能用正则表达式、查多个关键字、甚至能递归搜索文件夹里的所有文件。

✅ 基本格式:

findstr [参数] "要找的内容" [文件名或路径]

常见参数:

参数

意思

/i

忽略大小写

/s

连子文件夹一起搜

/n

显示行号

/m

只显示包含关键字的文件名(不显示内容)

/r

使用正则表达式

/c:”字符串”

准确匹配带空格的完整短语

/v

显示不包含关键字的行

举例说明:

1️⃣ 在 server.log 中找“error”:

findstr "error" server.log

2️⃣ 忽略大小写:

findstr /i "error" server.log

3️⃣ 查找整个文件夹及子文件夹:

findstr /s "error" *.log

4️⃣ 只看哪些文件含有“error”:

findstr /s /m "error" *.log

5️⃣ 搜多个关键字:

findstr "error warning fail" server.log

6️⃣ 搜一个短语(列如“connection timeout”):

findstr /c:"connection timeout" server.log

7️⃣ 用正则表达式找 IP 地址:

findstr /r "[0-9]*.[0-9]*.[0-9]*.[0-9]*" access.log

⚖️ 三、两者对比一下

功能

find

findstr

多关键字搜索

❌ 不行

✅ 可以

递归搜索子目录

❌ 不行

✅ 可以

支持正则表达式

❌ 不行

✅ 可以

只显示文件名

❌ 不行

✅ /m 可以

忽略大小写

✅ /i

✅ /i

简单易用

⚠️ 稍复杂但更强劲


四、几个实用小技巧

1️⃣ 查找日志文件中所有报错的文件:

findstr /s /m "error" *.log

2️⃣ 查找所有子目录下包含“timeout”的行并显示行号:

findstr /s /n /i "timeout" *.txt

3️⃣ 想数一数“error”出现了几次,可以这么写:

findstr "error" server.log | find /c /v ""

这里是把 findstr 的结果再交给 find 去统计数量。


总结一下

  • find:简单版,只能在文件里找某个词。
  • findstr:升级版,能查多个词,还能用正则表达式、递归文件夹、显示文件名。

一句话总结
要快用 find,要强用 findstr。


如果这篇文章对你有协助,欢迎点赞、收藏、转发!关注我,学习更多干货知识!

评论区留言,领取《从零到精通:CMD命令实战全能教程》电子书!

© 版权声明

相关文章

2 条评论

  • 头像
    理理真忙 投稿者

    用cmder或者wsl下面的bash,bash这个掌握了基本上可以纵横天下,所有操作系统通用。

    无记录
    回复
  • 头像
    江边听风 读者

    真不戳💪

    无记录
    回复