windows find findstr 命令
find 命令
find 命令用于查找文档中的特定字符和数字及行号, 例如我们在阅读文档时, 使用的快捷键 Ctrl + F 来查找是一个效果, 经过 find 查找的字符也可以重定向到一个文本文档里面去, 提取特定的字符, 来进行文档的整合。
find 命令好像不支持正则,加强版可使用 findstr
语法格式
用法:find [参数] [字符串] [磁盘:[目录]文件] FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[ …]]
E:\>find /? 在文件中搜索字符串。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]] /V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I 搜索字符串时忽略大小写。 /OFF[LINE] 不要跳过具有脱机属性集的文件。 "string" 指定要搜索的文本字符串。 [drive:][path]filename 指定要搜索的文件。 如果没有指定路径,FIND 将搜索在提示符处键入 的文本或者由另一命令产生的文本。
参数说明
参数 | 说明 |
---|---|
/V | 显示所有未包含指定字符串的行。 |
/C | 仅显示包含字符串的行数。 |
/N | 显示行号。 |
/I | 搜索字符串时忽略大小写。 |
/OFF[LINE] | 不要跳过具有脱机属性集的文件。 |
“string” | 指定要搜索的文本字符串。 |
[drive:][path]filename | 指定要搜索的文件。 |
案例
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> 字位置: 字的结束
查找包含字符串的行
测试文件 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