注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Window字符串增强查找命令:findstr  

2017-05-03 12:18:10|  分类: 操作系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
大家都知道Linux下有一个grep命令,查找字符串功能非常强大,而Window下如今也有了一个相类似的字符串增强查找命令: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  指定要查找的文件。
下面来简要说说用法:
1)基本格式查询:findstr “strings” [drive:][path]filename
a)常规查询:
findstr "jpg" 593668.com.txt
查找包含有“jpg”这三个字符串的行。
b)不区分大小写:
findstr /I "jpg" 593668.com.txt
查找包含有“jpg”这三个字符串【不区分大小写】的行。
c) 将搜索字符串作为正则表达式使用:
findstr /R "jpg png" 593668.com.txt
查找包含多个字符串的行【这里是指包含jpg或png】,各字符串用空格分开。
d) 连子目录夹中一起查询
findstr /S "jpg" *.txt
在当前目录下查找所有txt文件,找出包含jpg的行。
e)查找带空格的字符串
findstr /C:"jpg png" 593668.com.txt
这里查找的是包含"jpg png"字符串的行。
f)反查询不包含某特定字符串
findstr /V "jpg" 593668.com.txt
这里查找的是不包含"jpg"字符串的行。
2)正则表达式的用法规则:
 .        通配符: 代表任何一个字符,而且只能是一个,包括字母、数字、半角符号还有空格。
 *        重复: 以前字符或类别出现零或零以上次数
 ^        行位置: 行的开始
 $        行位置: 行的终点
 [class]  字符类别: 任何在字符集中的字符
 [^class] 补字符类别: 任何不在字符集中的字符
 [x-y]    范围: 在指定范围内的任何字符
 \x       Escape: 元字符 x 的文字用法
 \<xyz    字位置: 字的开始
 xyz\>    字位置: 字的结束
a)查找非空行
findstr "." 593668.com.txt>593668.com.new.txt
查找所有的非空行,输出到新的文本文件中。
b)查找任意字符,包括空行
findstr ".*" 593668.com.txt
这个好象没有什么意义。
c)查找包含特定字符
findstr "www\..*\.jpg" 593668.com.txt
查找包含形如www.任意字符.jpg的行。
d)行首、行尾符规则,即 ^ 和 $
这个不多说,熟悉正则的人都知道。
e)字符集规则,集里的任意一个字符的即匹配,元素可以是字母和数字和一般的半角字符,如:}{ ,.][等,但双引号"不能被识别也不能是汉字。这里请注意,如果在字符集内插入通配符和重复符号,即"[.*]",正则将会把. 和 *视为普通字符,并不适应通配符和重复的含义。
同样不多说,正则的老规矩。
f)减法规则,取反,即[^class]。
这里有一点要注意:行不能有空格,不论行首行尾或者是行中都不能有空格,否则就会过滤失败!
g)单词前缀后缀定位规则,这个就不太一样,仅针对可以是英文单词或数字,也不适用于汉字。符号 \ 被处理成为转义符化解小于号和大于号的重定向命令含义。该规则是匹配类似单个英文单词的。
findstr "\<www" 593668.com.txt
所有包含有以www为前缀的单词的行,都可以匹配。
3)转义符,把表达式中的特殊字符(元字符)转化为普通字符。常见写法:
 \. , \* , \\ ,??, \-,\<,\>
要查找的字符串含有\时,就必须用\\把\给转义;或者把\变成\\\\。如果目标字符串的\后面还有内容,则搜索字符串\除了要变成\\(本身的转义要求),还可以在它后面再加一个字符【如\\.】再加内容
  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017