windows find findstr命令(cmd查找文档中的特定字符)
作者:返回主页刘军军
find 命令用于查找文档中的特定字符和数字及行号, 例如我们在阅读文档时, 使用的快捷键 Ctrl + F 来查找是一个效果, 经过 find 查找的字符也可以重定向到一个文本文档里面去, 提取特定的字符, 来进行文档的整合。
find 命令好像不支持正则,加强版可使用 findstr
find 命令
在 Windows 系统中,find
命令用于在文件中搜索指定的字符串。以下是find
命令的详细用法:
基本语法
find [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
参数说明
参数 | 说明 |
---|---|
/V | 显示所有未包含指定字符串的行。 |
/C | 仅显示包含字符串的行数。 |
/N | 显示行号。 |
/I | 搜索字符串时忽略大小写。 |
/OFF[LINE] | 不要跳过具有脱机属性集的文件。 |
“string” | 指定要搜索的文本字符串。 |
[drive:][path]filename | 指定要搜索的文件。 |
/V
:显示所有不包含指定字符串的行。例如,要查找文件中不包含 “error” 的行,可以使用find /V "error" file.txt
。/C
:仅显示包含指定字符串的行数。例如,find /C "success" log.txt
会显示 “log.txt” 文件中包含 “success” 的行数。/N
:在显示匹配行的同时,显示行号。例如,find /N "warning" system.log
会显示 “system.log” 文件中包含 “warning” 的行以及行号。/I
:在搜索字符串时忽略大小写。例如,find /I "Windows" readme.txt
会在 “readme.txt” 文件中查找 “Windows”、“windows” 等字符串。/OFF[LINE]
:在处理脱机文件时,强制find
命令在不访问网络共享的情况下执行搜索。"string"
:要搜索的字符串,必须用双引号括起来。[drive:][path]filename
:指定要搜索的文件或文件集的路径和名称。可以指定多个文件,文件之间用空格分隔。例如,find "keyword" C:\data\file1.txt D:\logs\file2.log
会在 “file1.txt” 和 “file2.log” 文件中搜索 “keyword”。
示例
查找当前目录下所有.txt
文件中包含 “hello” 的行,并显示行号:
find /N "hello" *.txt
统计指定文件中包含 “world” 的行数:
find /C "world" myfile.txt
在多个文件中查找不包含 “error” 的行,并忽略大小写:
find /V /I "error" file1.txt file2.txt file3.txt
注意事项
find
命令只能在文本文件中进行搜索,对于二进制文件,可能会出现不可预测的结果。- 如果要搜索的字符串包含特殊字符,如引号、括号等,可能需要对这些字符进行转义或使用其他方法来处理。
- 在使用通配符(如
*
和?
)指定文件时,要确保通配符的使用符合预期,以避免搜索到不相关的文件。
此外,Windows 系统中还有一些其他工具和命令也可以用于文件搜索和文本处理,如findstr
命令,它提供了更强大的搜索功能,支持正则表达式等。
案例
E:\>netstat -ano|find "4664" TCP 127.0.0.1:21440 0.0.0.0:0 LISTENING 4664 TCP 127.0.0.1:21441 0.0.0.0:0 LISTENING 4664 TCP 127.0.0.1:21441 127.0.0.1:49775 ESTABLISHED 4664
查看指定字符并忽略大小写
E:\>netstat -ano|find /I "listening" TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1084 TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 6276 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 6152 TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 6152 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1260 TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING 908 TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING 768 TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING 1528
统计包含指定字符串的行数
E:\>netstat -ano|find /I /C "listening" 44
显示行号
E:\>netstat -ano|find /N "4664" [26] TCP 127.0.0.1:21440 0.0.0.0:0 LISTENING 4664 [27] TCP 127.0.0.1:21441 0.0.0.0:0 LISTENING 4664 [28] TCP 127.0.0.1:21441 127.0.0.1:49775 ESTABLISHED 4664
查找结果反选
E:\>netstat -ano|find /I /V "listening" 活动连接 协议 本地地址 外部地址 状态 PID TCP 127.0.0.1:21441 127.0.0.1:49775 ESTABLISHED 4664 TCP 127.0.0.1:49775 127.0.0.1:21441 ESTABLISHED 11660 TCP 127.0.0.1:58769 127.0.0.1:58772 ESTABLISHED 4064 TCP 127.0.0.1:58769 127.0.0.1:58773 ESTABLISHED 4064 TCP 127.0.0.1:58769 127.0.0.1:58806 ESTABLISHED 4064 TCP 127.0.0.1:58772 127.0.0.1:58769 ESTABLISHED 9388 TCP 127.0.0.1:58773 127.0.0.1:58769 ESTABLISHED 10340 TCP 127.0.0.1:58806 127.0.0.1:58769 ESTABLISHED 9388 TCP 192.168.1.3:52970 221.204.58.54:443 CLOSE_WAIT 1960 TCP 192.168.1.3:53285 221.204.17.1:443 CLOSE_WAIT 1960 TCP 192.168.1.3:53303 120.131.13.30:443 CLOSE_WAIT 1960 TCP 192.168.1.3:53575 139.196.142.30:443 ESTABLISHED 7484 TCP 192.168.1.3:53611 139.196.142.30:443 TIME_WAIT 0 TCP 192.168.1.3:53613 116.62.230.66:443 TIME_WAIT 0 ........................................................................................
findstr 命令
findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。通过管道符与其他命令结合使用,其用途和用法都类似linux下的grep命令,用于查找过滤指定字符串。
用法:find [参数] [字符串] [磁盘:[目录]文件]
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
E:\>findstr /? 在文件中寻找字符串。 FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]] strings [[drive:][path]filename[ ...]] /B 在一行的开始配对模式。 /E 在一行的结尾配对模式。 /L 按字使用搜索字符串。 /R 将搜索字符串作为一般表达式使用。 /S 在当前目录和所有子目录中搜索匹配文件。 /I 指定搜索不分大小写。 /X 打印完全匹配的行。 /V 只打印不包含匹配的行。 /N 在匹配的每行前打印行数。 /M 如果文件含有匹配项,只打印其文件名。 /O 在每个匹配行前打印字符偏移量。 /P 忽略有不可打印字符的文件。 /OFF[LINE] 不跳过带有脱机属性集的文件。 /A:attr 指定有十六进位数字的颜色属性。请见 "color /?" /F:file 从指定文件读文件列表 (/ 代表控制台)。 /C:string 使用指定字符串作为文字搜索字符串。 /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。 /D:dir 查找以分号为分隔符的目录列表 strings 要查找的文字。 [drive:][path]filename 指定要查找的文件。 除非参数有 /C 前缀,请使用空格隔开搜索字符串。 例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 "hello there"。 一般表达式的快速参考: . 通配符: 任何字符 * 重复: 以前字符或类出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [class] 字符类: 任何在字符集中的字符 [^class] 补字符类: 任何不在字符集中的字符 [x-y] 范围: 在指定范围内的任何字符 \x Escape: 元字符 x 的文字用法 \<xyz 字位置: 字的开始 xyz\> 字位置: 字的结束 有关 FINDSTR 常见表达法的详细情况,请见联机命令参考。
参数说明
/B 在一行的开始配对模式。
/E 在一行的结尾配对模式。
/L 按字使用搜索字符串。
/R 将搜索字符串作为一般表达式使用。
/S 在当前目录和所有子目录中搜索匹配文件。
/I 指定搜索不分大小写。
/X 打印完全匹配的行。
/V 只打印不包含匹配的行。
/N 在匹配的每行前打印行数。
/M 如果文件含有匹配项,只打印其文件名。
/O 在每个匹配行前打印字符偏移量。
/P 忽略有不可打印字符的文件。
/OFF[LINE] 不跳过带有脱机属性集的文件。
/A:attr 指定有十六进位数字的颜色属性。请见 “color /?”
/F:file 从指定文件读文件列表 (/ 代表控制台)。
/C:string 使用指定字符串作为文字搜索字符串。
/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
/D:dir 查找以分号为分隔符的目录列表
strings 要查找的文字。
[drive:][path]filename 指定要查找的文件。
注:除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 "hello there"。
. 通配符: 任何字符 * 重复: 以前字符或类出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [class] 字符类: 任何在字符集中的字符 [^class] 补字符类: 任何不在字符集中的字符 [x-y] 范围: 在指定范围内的任何字符 \x Escape: 元字符 x 的文字用法 <xyz 字位置: 字的开始 xyz> 字位置: 字的结束
示例
在当前目录下的所有.txt文件中搜索包含字符串 “example” 的行,并显示行号:
findstr /N "example" *.txt
在指定文件test.txt中搜索以 “Hello” 开头的行:
findstr /B "Hello" test.txt
在当前目录及其子目录的所有文件中搜索不包含 “error” 的行:
findstr /S /V "error" *.*
搜索包含特定字符串且不区分大小写的行:
findstr /I "Windows" file.txt
findstr命令功能强大,在处理文本搜索任务时非常方便,特别是在需要批量处理文件或进行简单的文本筛选时,能大大提高工作效率。通过组合不同的参数,可以实现各种复杂的搜索需求。
查找包含字符串的行
测试文件 a.txt aa123 bb234 cc345
E:\>more a.txt aa123 bb234 cc345 E:\>findstr aa a.txt aa123
查找包含字符串的行并忽略大小写
使用 /I 参数忽略大小写 测试文件 a.txt aa123 bb234 cc345 AA111 BB222 CC333
E:\>more a.txt aa123 bb234 cc345 AA111 BB222 CC333 E:\>findstr /I aa a.txt aa123 AA111
多字符条件查找
除非参数有 /C 前缀,请使用空格隔开搜索字符串。 例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或 "there"。'FINDSTR /C:"hello there" x.y' 文件 x.y 寻找 "hello there"。 测试文件 a.txt aa 123 123 bb 234 cc 345 AA 111 BB 222 CC 333
E:\>more a.txt aa 123 123 bb 234 cc 345 AA 111 BB 222 CC 333 E:\>findstr "aa 123" a.txt aa 123 123 E:\>findstr /C:"aa 123" a.txt aa 123
使用正则查找字符串
使用 /R 参数 + 正则查找内容 测试文件 a.txt aa 123 123 bb 234 cc 345 AA 111 BB 222 CC 333 AAAAA BBBBB CCCCC
E:\>findstr /R "^aa" a.txt aa 123 E:\>findstr /R "22$" a.txt BB 222 E:\>findstr /R "[1-9]" a.txt aa 123 123 bb 234 cc 345 AA 111 BB 222 CC 333
E:\>findstr /R "[a-z]" a.txt aa 123 bb 234 cc 345 AA 111 BB 222 CC 333 AAAAA BBBBB CCCCC
获取反选内容
使用 /V 参数 测试文件 a.txt aa 123 123 bb 234 cc 345 AA 111 BB 222 CC 333 AAAAA BBBBB CCCCC
E:\>findstr /V "aa" a.txt 123 bb 234 cc 345 AA 111 BB 222 CC 333 AAAAA BBBBB CCCCC
到此这篇关于windows find findstr命令(cmd查找文档中的特定字符)的文章就介绍到这了,更多相关cmd下查找字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!