Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4251502
  • 博文数量: 776
  • 博客积分: 13014
  • 博客等级: 上将
  • 技术积分: 10391
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 17:00
文章分类

全部博文(776)

文章存档

2015年(55)

2014年(43)

2013年(147)

2012年(20)

2011年(82)

2010年(429)

分类: WINDOWS

2014-05-10 08:41:10

findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含(或通过参数 /V来控制不包含)某些特定字符串的行,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。其用途和用法都类似linux下的grep命令,基本用法如下:

findstr 参数 "搜索字符串" [[drive:][path]filename[ ...]]

其中参数可以组合多个,[drive:]、[path]是可选的,如果省略,默认是查找当前目录,至少指定一个文件,可以同时指定多个,用空格分隔,另外文件名可以使用通配符,例如所有文本文件,就可以写成 *.txt 即可。

另外findstr的输入也可以接受来自管道的输出,例如命令:netstat -nao | findstr “8080″ 可以查看命令netstat输出的信息中所有包含“8080”字符串的行。

用法1:打印出文件demo.txt中包含“hello world”字符串的行的完整信息(不区分大小写),并且打印出行号。

findstr /NI /C:"hello world" demo.txt

注意:不能漏写”/C:”,否则含有hello或者world的行都作为结果打印出来。

用法2:找出并打印出目录C:\deom下(包括其子目录)所有含有字符串“netingcn.com”的文本文件的文件名。

findstr /MSI "netingcn.com" *.txt

通过findstr /? 可以看到帮助信息,帮助信息如下:

在文件中寻找字符串。

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/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 的文字用法
  \    字位置: 字的结束

参数/B等价于在搜索字符串前的”^”符号。

参数/E等价于在搜索字符串后的”$”符号。

参数/S会对目录进行递归查询。

参数/C就是强制把输入的子字符串作为查询目标,否则输入的字符串中有空格的话,findstr会以“或”的逻辑来进行查找。

参数/D可以实现对多个存放在不同路径的文件夹进行查询。

阅读(2032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~