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
posted @ 2024-03-17 23:05  星火撩原  阅读(237)  评论(0编辑  收藏  举报