快速业务通道

cmd findstr 字符串查找增强使用说明

作者 佚名 来源 批处理 浏览 发布时间 2013-07-09

结果:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr "Hello" a.txt
Hello World
Hello Boy

这里可以看出,
findstr默认是区分大小写的(跟find命令一样)——找hello就不会出现Hello,反之亦然。
怎么让其不区分大小写呢?
用/i参数!
例如:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /i "Hello" a.txt
Hello World
Hello Boy
hello ,good man.

2.显示要查找的字符具体在文本哪一行
代码:C:\Users\helloworld\Desktop>findstr /n /i "hello" a.txt
复制代码效果:
复制代码 代码如下:

1:Hello World
2:Hello Boy
3:hello ,good man.

显示的结果中冒号(:)是英文格式下的,在用for提取的时候需要注意!
这里可以对比一下find命令的/n参数:
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>find /n "hello" a.txt

效果:---------- A.TXT
[3]hello ,good man.
复制代码冒号(:)和中括号([]),这就是差别,编写代码的时候一定要注意。
3.查找包含了指定字符的文本
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /m /i "hello" *.txt

效果:
复制代码 代码如下:

1.txt
a.txt

1.txt中的类容如下:除非参数有 /C 前缀,请使用空格隔开搜索字符串。
例如:
复制代码 代码如下:

''FINDSTR "hello there" x.y'' 在文件 x.y 中寻找 "hello" 或
"there"。''FINDSTR /C:"hello there" x.y'' 文件 x.y 寻找
"hello there"。
[code]
由于加上了/m参数,所以只列出包含指定字符的文件名。
4.查找以指定字符开始或结尾的文本行
这个功能和前面介绍的最大不同就在于涉及到了“元字符”,如果你不明白什么是“元字符”,那也不用担心学不好这一节,这就好像不明白“water”是什么,也不会影响喝水。
a.txt内容:
[code]
good hello
你好 hello world
Hello World
Hello Boy
hello ,good man.
goodbye!

如何查找以hello(忽略大小写)开始的行?
两种方法:
①./b参数
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /b /i "hello" a.txt

效果:
复制代码 代码如下:

Hello World
Hello Boy
hello ,good man.

good hello 和 你好 hello world,这两行都没有显示出来,因为hello不在行的开始处。
②.^符
这里的^可不是转义符,而是正则表达式中的“匹配行开始的位置”。
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /i "^hello" a.txt

效果:
复制代码 代码如下:

Hello World
Hello Boy
hello ,good man.

学完了以查找指定字符开始的行,下面学习查找以指定字符结尾的行。
如何查找以hello(忽略大小写)结尾的行?
同样有两种方法:
①./e参数
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /e /i "hello" a.txt

结果:
复制代码 代码如下:

good hello

只显示了“good hello”,因为其它行虽然有“hello”,但是他们都没有以“hello”结尾。
②.$符
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /i "hello$" a.txt

结果:good hello
到此,我们已经学习了两个正则表达式的元字符:^和$(分别和他们功能相对应的有/b、/e参数)。
5.查找与指定字符完全匹配的行
首先修改a.txt的内容:
复制代码 代码如下:

hello
hello hello
good hello
你好 hello world
Hello World
Hello Boy
hello ,good man.
goodbye!

懂得举一反三的的童鞋可能会试着尝试以下代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /n /i "^hello$" a.txt

结果让你倍感欣喜:1:hello
其实除了这一种方法外,findstr命令还提供了/x参数用来查找完全匹配的行。
代码:
复制代码 代码如下:

C:\Users\helloworld\Desktop>findstr /n /i /x "hello" a.txt

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号