bat知识点8_findstr

原创 2016年08月30日 17:41:15


1.概述
在文件中寻找字符串。


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"。


findstr默认为“正则表达式模式”,加上/r参数也是“正则表达式模式”(换言之,/r参数有点多余)。
加上/l参数后,findstr转换为“普通字符串模式”(其实find就是这种模式、且只有这种模式)。


正则表达式的快速参考:
.        通配符: 任何字符
*        重复: 以前字符或类出现零或零以上次数
^        行位置: 行的开始
$        行位置: 行的终点
[class]  字符类: 任何在字符集中的字符
[^class] 补字符类: 任何不在字符集中的字符
[x-y]    范围: 在指定范围内的任何字符
\x       Escape: 元字符 x 的文字用法
\<xyz    字位置: 字的开始
xyz\>    字位置: 字的结束


2.实例
(1)findstr默认是区分大小写的,要想得到不区分大小写的结果,可以使用/i
a.txt-----------
Hello World
Hello Boy
hello ,good man.
goodbye!


执行1:
findstr "hello" a.txt
结果1:
hello ,good man.


执行2:
findstr "Hello" a.txt
结果2:
Hello World
Hello Boy


执行3:
findstr /i "Hello" a.txt
结果3:
Hello World
Hello Boy
hello ,good man.


(2)显示要查找的字符具体在文本哪一行
执行1:
findstr /n /i "hello" a.txt
结果1:
1:Hello World
2:Hello Boy
3:hello ,good man.


执行2:
find /n "hello" a.txt
结果2:
[3]hello ,good man.


注意:以上输出的冒号(:)和中括号([])


(3)查找包含了指定字符的文本
执行1:
findstr /m /i "hello" *.txt
结果1:
a.txt


注意:由于加上了/m参数,所以只列出包含指定字符的文件名。


(4)查找以指定字符开始或结尾的文本行
b.txt-----------
good hello
你好 hello world
Hello World
Hello Boy
hello ,good man.
goodbye!


执行1:
findstr /b /i "hello" b.txt
结果1:
Hello World
Hello Boy
hello ,good man.


注意:/b参数表示在开头查找。


执行2:
findstr  /i "^hello" b.txt
结果2:
Hello World
Hello Boy
hello ,good man.


注意:这里的正则表达式的元字符^表示“匹配行开始的位置”。


执行3:
findstr /e /i "hello" b.txt
结果3:
good hello


注意:/e参数表示在结尾查找


执行4:
findstr  /i "hello$" b.txt
结果4:
good hello


注意:这里的正则表达式的元字符$表示“匹配行结尾的位置”。


(5)查找完全匹配的行
执行1:
findstr /n /i "^goodbye!$" b.txt
结果1:
1:hello


执行2:
findstr /n /i /x "hello" b.txt
结果2:
1:hello


注意:/x参数表示打印完全匹配的行。


(6)查找不包含指定字符的行
执行1:
findstr /vni "hello" a.txt
结果1:
4:goodbye!


注意:/v参数表示只打印不包含匹配的行。


(7)用文本制定要查找的字符串
string.txt----------
^hello
world


c.txt------------
^hello
hello
hello hello
good hello
你好 hello 
Hello World
Hello Boy
hello ,good man.
goodbye!


执行1:
findstr /ig:string.txt c.txt
结果1:
hello
hello hello
Hello World
Hello Boy
hello ,good man.


从被忽略的“^hello”可以看出,在不加/l参数的前提下,用/g指定的搜索字符串中如果含有“元字符”,
则作为正则表达式使用,而不是作为普通表达式。


(8)只要求显示含有“far”这个单词的行
d.txt----------
far there
farthere
there
far
farm
farmer


执行1:
findstr "\<far\>" d.txt
结果1:
far there
far
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【win8开发 -- XAML中琐碎知识点】

1、 Canvas、StackPanel、Grid Width、Height的可选值:Auto,自动:*,表示百分号时为:0.3* 2、Button在Grid中占两列的代码:Grid.Co...
  • f10_s
  • f10_s
  • 2013-07-11 15:37
  • 925

【Android知识点精讲】(8)TV UI设计

本文出处: TV UI就是指Android系统的数字电视的图形交互界面。TV UI最大的特点就是屏幕大,为此我们要解决好以下3个问题: 1. 为大屏幕提供适当的布局源文件 2. 保证UI在一定距离仍然...

php学习笔记8-- 提高php编程效率的53个小知识点

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中 搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中...

RN8_React-Native知识点1之-Navigator导航学习

RN7_实践(4) 参考:http://bbs.reactnative.cn/topic/20/%E6%96%B0%E6%89%8B%E7%90%86%E8%A7%A3navigator%E7%9A...

知识点8:常见的排序算法–选择排序

昨天我们已经介绍了快速排序的原理和实现,并且还通过几个循环渐进的假设来脑补了一回选择排序的执行过程。但很遗憾的是因为这几篇博客都没有在我的电脑上写的,用的是新的linux系统,也没有java执行环境和...

JVM(8):JVM知识点总览-高级Java工程师面试必备

在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来取胜了,但是练到高手之后...

RN8_React-Native知识点3之-基本控件(2)

RN8_知识点之-基本控件(2) Switch 必须使用onValueChange回调来更新value属性以响应用户的操作。 属性方法 1.      View...

cocos2d-x基本知识点(8):菜单项

CCMenuItem是一个基类,它的子类可以加入CCMenu中

牛客网 8-1 网络基础 操作系统 编译与体系结构 30题知识点总结

1、  系统内可以有无父进程的进程。  init进程没有父进程     2、死锁 定义 :在一个进程集合中,所有的进程都在等待只能由该进程集合中的其它进程才能引发的事件,这就是死锁 解释 :...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)