文章目录
windows find findstr 命令学习
find 命令
1. find 命令简介
find
命令用于查找文档中的特定字符和数字及行号, 例如我们在阅读文档时, 使用的快捷键Ctrl + F
来查找是一个效果, 经过find
查找的字符也可以重定向到一个文本文档里面去, 提取特定的字符, 来进行文档的整合。
find
命令好像不支持正则,加强版可使用findstr
2. 使用语法及说明
2.1 语法格式
用法:find [参数] [字符串] [磁盘:[目录]文件]
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[ …]]
2.2 参数说明
参数 | 说明 |
---|---|
/V | 显示所有未包含指定字符串的行。 |
/C | 仅显示包含字符串的行数。 |
/N | 显示行号。 |
/I | 搜索字符串时忽略大小写。 |
/OFF[LINE] | 不要跳过具有脱机属性集的文件。 |
“string” | 指定要搜索的文本字符串。 |
[drive:][path]filename | 指定要搜索的文件。 |
3. 案例
3.1 查看指定端口是否监听
C:\Users\Dxx\Desktop\Windows>netstat -ano | find "17400"
TCP 192.168.137.1:7608 192.168.137.104:22 ESTABLISHED 17400
3.2 查看指定字符并忽略大小写
C:\Users\Dxx\Desktop\Windows>netstat -ano | find /I "listen"
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1576
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 5892
...
3.3 统计包含指定字符串的行数
C:\Users\Dxx\Desktop\Windows>netstat -ano | find /I /C "listen"
34
3.4 显示行号
C:\Users\Dxx\Desktop\Windows>netstat -ano | find /N "17400"
[41] TCP 192.168.137.1:7608 192.168.137.104:22 ESTABLISHED 17400
3.5 查找结果反选
C:\Users\Dxx\Desktop\Windows>netstat -ano | find /I /V "listen"
活动连接
协议 本地地址 外部地址 状态 PID
TCP 127.0.0.1:1355 127.0.0.1:1356 ESTABLISHED 15872
TCP 127.0.0.1:1356 127.0.0.1:1355 ESTABLISHED 15872
TCP 127.0.0.1:2559 127.0.0.1:2560 ESTABLISHED 11028
TCP 127.0.0.1:2560 127.0.0.1:2559 ESTABLISHED 11028
...
findstr 命令
1. findstr 命令简介
findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。通过管道符与其他命令结合使用,其用途和用法都类似linux下的grep命令,用于查找过滤指定字符串。
2. 使用语法及说明
2.1 语法格式
用法: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[ ...]]
2.2 参数说明
参数 | 说明 |
---|---|
/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"
。
2.3 正则参数说明
参数 | 说明 |
---|---|
. | 通配符: 任何字符 |
* | 重复: 以前字符或类出现零或零以上次数 |
^ | 行位置: 行的开始 |
$ | 行位置: 行的终点 |
[class] | 字符类: 任何在字符集中的字符 |
[^class] | 补字符类: 任何不在字符集中的字符 |
[x-y] | 范围: 在指定范围内的任何字符 |
\x | Escape: 元字符 x 的文字用法 |
<xyz | 字位置: 字的开始 |
xyz> | 字位置: 字的结束 |
3. 案例
3.1 查找包含字符串的行
测试文件
a.txt
aa123
bb234
cc345
C:\Users\D\Desktop>findstr aa a.txt
aa123
3.2 查找包含字符串的行并忽略大小写
使用
/I
参数忽略大小写测试文件
a.txt
aa123
bb234
cc345
AA111
BB222
CC333
C:\Users\D\Desktop>more a.txt
aa123
bb234
cc345
AA111
BB222
CC333
C:\Users\D\Desktop>findstr /I aa a.txt
aa123
AA111
3.3 多字符条件查找
除非参数有 /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
C:\Users\D\Desktop>more a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
C:\Users\D\Desktop>findstr "aa 123" a.txt
aa 123
123
C:\Users\D\Desktop>findstr /C:"aa 123" a.txt
aa 123
3.4 使用正则查找字符串
使用
/R
参数+
正则查找内容测试文件
a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC
C:\Users\D\Desktop>more a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC
C:\Users\D\Desktop>findstr /R "^aa" a.txt
aa 123
C:\Users\D\Desktop>findstr /R "22$" a.txt
BB 222
C:\Users\D\Desktop>findstr /R "[1-9]" a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
C:\Users\D\Desktop>findstr /R "[a-z]" a.txt
aa 123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC
3.5 获取反选内容
使用
/V
参数测试文件
a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC
C:\Users\D\Desktop>more a.txt
aa 123
123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC
C:\Users\D\Desktop>findstr /V "aa" a.txt
123
bb 234
cc 345
AA 111
BB 222
CC 333
AAAAA
BBBBB
CCCCC