findstr 用法

findstr 用法http://bathome.l3.wuyou.com/thread-11159-1-6.html/B在一行的开始配对模式。——只在行开头搜索。/E在一行的结尾配对模式。——只在行结尾搜索。/L按字使用搜索字符串。——具体不详,可以与/r参数替换测试。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

http://bathome.l3.wuyou.com/thread-11159-1-6.html

/B 在一行的开始配对模式。——只在行开头搜索。

/E 在一行的结尾配对模式。——只在行结尾搜索。

/L 按字使用搜索字符串。——具体不详,可以与 /r 参数替换测试。

/R 将搜索字符串作为一般表达式使用。——当命令成功而搜索失败时(某些中文字符搜索,类似 /I 参数),可以试试这个参数。

/S 在当前目录和所有子目录中搜索匹配文件。——这个没啥说的,搜索程序所在目录内的所有位置。

/I 指定搜索不分大小写。——搜索英文时注意。

/X 打印完全匹配的行。——只有搜索到的行与搜索词一致时显示结果。

/V 只打印不包含匹配的行。——与 /X 参数相反,如果行中没包含搜索词就显示。

/N 在匹配的每行前打印行数。——这个可以用来获得一个文本由多少行,并可以与FOR、if等组合定位行。

/M 如果文件含有匹配项,只打印其文件名。——用于搜索文件,搜索到含有关键词的文件时,就显示文件名。

/O 在每个匹配行前打印字符偏移量。——没用过,偏移量应该和SET的截取差不多吧,大大们解释下。

/P 忽略有不可打印字符的文件。——我很少用。

/OFF[LINE] 不跳过带有脱机属性集的文件。。——我很少用。

/A:attr 指定有十六进位数字的颜色属性。请见 “color /?”——搜索到文件时用色彩显示出来,很有用。

/F:file 从指定文件读文件列表 (/ 代表控制台)。——应该是与 /G:file 参数相对,也就是从文本中搜索字符时,该文本可以预先写入一个文本中,然后类似FOR的读取。似乎是这样。

/C:string 使用指定字符串作为文字搜索字符串。——我很少用。

/G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。——FIndstr可以将搜索关键词写入到一个文本中,然后一次性的用该文本获取关键词进行搜索,类似FOR。

/D:dir 查找以分号为分隔符的目录列表。——使用findstr /n的结果会以分号分隔,此时该命令应该起作用,没用过。

findstr /b “test” test.txt

会搜索出test123这一行,而不会搜索出123test这一行,/e与此类似。
/l和/r:望高手补充
/s:在当前目录和所有子目录中搜索匹配文件,与通配符搭配功能强大,如
findstr /s “test” *.txt

会搜索当前目录和其所有子目录下的文本文件,打印出含有字符串”test“的所有行,打印结果前会有文件路径和文件名,形如:
test\test.txt:test123
test\test.txt:123test

/i:指定搜索不分大小写,搜索字符串是不分大小写的,如:
findstr /i “abc” test.txt

文本中像”123ABC”这样的行也会被列出。
/x:打印完全匹配的行,就是该行必须只含有搜索字符串才能匹配,”跟正则表达式的”^字符串$”功能类似,如:
findstr /x “test” test.txt

会打印”test“这行,而不会打印”test123”这行。
/v:只打印不包含匹配的行,很好理解,就是含有搜索字符串的行不打印,不含有搜索字符串的行打印,如:
findstr /v “123” test.txt

所有不包含字符串”123″的行都会被打印出来。跟正则表达式中的^作用类似。
/n:在匹配的每行前打印行数,看看执行结果就知道什么意思了:
findstr /n “test” test.txt

执行结果为:
1:test123
2:123test

也就是在找到的每行前加上行号(该行在该文件中位于哪行),用冒号分隔。
/o:在每行前打印字符偏移量,在找到的每行前打印该行首距离文件开头的位置,也就是多少个字符,如test.txt中有如下内容:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

执行命令:
findstr /0 .* test.txt
::上一行中的.*为正则表达式的内容,表示任意行,包含空行

结果如下:
0:aaaaaaaaaa
12:aaaaaaaaaa
24:aaaaaaaaaa
36:aaaaaaaaaa
48:aaaaaaaaaa

注意每行末尾的回车换行符算两个字符。

/a:当被搜索文件名中含有通配符*或?时对搜索结果的文件名部分指定颜色属性,具体颜色值参见color帮助:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
常用于彩色显示,举个简单的例子,想要彩色显示“批处理之家”怎么办,假如当前的color设置为27(背景绿色,字体白色),用蓝色显示“批处理之家”咋办?
::下一行的退格符可以在cmd的编辑模式下按ctrl+p后按退格键获得
>”批处理之家” set /p=<nul
findstr /a:21 .* “批处理之家*”
pause

代码中的退格符是为了让显示的内容仅为”批处理之家”,如果有其他内容,在彩色显示的”批处理之家”后还有一个冒号和其他内容,退格符正好将冒号删除。注意代码中的通配符是必须的。
/f:从指定文件读文件列表,事先可以将待搜索的文件放在一个文本文件中,每个文件放在一行,findstr命令在执行时会到文本文件中去找这些待搜索的文件,假如当前目录下有一文本文件list.txt中内容如下:
1.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt

且当前目录下有这些文件,文件内容都是123456789,那么执行下列命令:
findstr /f:list.txt “1”

结果如下:
1.txt:123456789
2.txt:123456789
3.txt:123456789
4.txt:123456789
5.txt:123456789
6.txt:123456789
7.txt:123456789
8.txt:123456789
9.txt:123456789

看了这个例子相信你也明白了这个开关的作用。
/m:如果文件含有匹配项,只打印其文件名,而且还会打印路径,意思很好理解,如:
findstr /s /m “123” *.txt

会找出当前目录和其所有子目录中含有字符串”123″的文本文件,结果:
test\1.txt
test\2.txt
test\3.txt
test\4.txt
test\5.txt
test\6.txt
test\7.txt
test\8.txt
test\9.txt

/c:使用指定字符串作为文字搜索字符串,如要搜索字符串”123 456″,通常我们会想到
findstr “123 456” test.txt

但是这样搜索字符串会被当成两个字符串,只含有”123″或”456″的行也会被打印出来,此时就可以用
findstr /c:”123 456″ test.txt

这是搜索字符串为”123 456″了。
/g:从指定的文件获得搜索字符串,也就是事先把搜索字符串放在一个文本文件中,findstr执行时到这个文件中去找这个搜索字符串,如1.txt中内容为”123“,执行命令
findstr /g:1.txt test.txt

等同于findstr “123” test.txt。1.txt中可以有多行,表示有多个搜索字符串。
/d:查找以分号为分隔符的目录列表,就是到这个开关所指定的目录中去搜索指定文件,如有11和22两个文件夹在当前目录下,执行命令:
findstr /d:11;22 “12” *.txt

结果如下:
11:
1.txt:123
2.txt:123456789
3.txt:123456789
4.txt:123456789
5.txt:123456789
22:
6.txt:123456789
7.txt:123456789
8.txt:123456789
9.txt:123456789

findstr /r “” 1.txt 是正则表达式,用法如下

1.findstr . 2.txt 或 Findstr “.” 2.txt
从文件2.txt中查找任意字符,不包括空字符或空行
====================

2.findstr .* 2.txt 或 findstr “.*” 2.txt
从文件2.txt中查找任意字符包括空行和空字符
====================

3.findstr “[0-9]” 2.txt
从文件2.txt中查找包括数字0-9的字符串或行
====================

4.findstr “[a-zA-Z]” 2.txt
从文件2.txt中查找包括任意字符的字符串或行
====================

5.findstr “[abcezy]” 2.txt
从文件2.txt中查找包括a b c e z y字母的字符串或行
====================

6.findstr “[a-fl-z]” 2.txt
从文件2.txt中查找小写字符a-f l-z的字符串,但不包含g h I j k这几个字母。
====================

7.findstr “M[abc][hig]Y” 2.txt
从文件2.txt中可以匹配 MahY , MbiY, MahY等…..
====================

8. ^和$符号的应用
^ 表示行首,”^step”仅匹配 “step hello world”中的第一个单词
$ 表示行尾,”step$”仅匹配 “hello world step”中最后一个单词
====================

9.findstr “[^0-9]” 2.txt
如果是纯数字的字符串或者行便过滤掉,例如2323423423 这样的字符串,如果是345hh888这样的形式就不成了。
====================

10.findstr “[^a-z]” 2.txt
同上,如果是纯字母的字符串或者行便过滤掉,例如 sdlfjlkjlksjdklfjlskdf这样的字符,如果是sdfksjdkf99999这样的形式,掺杂着数字就不成了
====================

11.*号的作用
前面已经说过了 “.*”表示搜索的条件是任意字符,*号在正则表达式中的作用不是任何字符,而是表示左侧字符或者表达式的重复次数,*号表示重复的次数为零次或者多次。
====================

12.findstr “^[0-9]*$” 2.txt
这个是匹配找到的纯数字,例如 234234234234,如果是2133234kkjl234就被过滤掉了。
Findstr “^[a-z]*$” 2.txt
这个是匹配找到的纯字母,例如 sdfsdfsdfsdf,如果是213sldjfkljsdlk就被过滤掉了
如果在搜索条件里没有*号,也就是说不重复左侧的搜索条件,也就是[0-9] [a-z]那只能匹配字符串的第一个字符也只有这一个字符,因为有行首和行尾的限制,”^[0-9]$”第一个字符如果是数字就匹配,如果不是就过滤掉,如果字符串是 9 就匹配,如果是98或者9j之类的就不可以了。
=====================

13. “\<…\>”这个表达式的作用
这个表示精确查找一个字符串,\<sss 表示字的开始位置,sss\>表示字的结束位置
echo hello world computer|findstr “\<computer\>”这样的形式
echo hello worldcomputer|findstr “\<computer\>” 这样的形式就不成了,他要找的是 “computer”这个字符串,所以不可以。
echo hello worldcomputer|findstr “.*computer\>”这样就可以匹配了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213944.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月16日 下午9:43
下一篇 2025年7月16日 下午10:22


相关推荐

  • HttpClient4.x 文件上传

    HttpClient4.x 文件上传演示gradle包引入compilegroup:’org.apache.httpcomponents’,name:’httpclient’,version:’4.5.3’上传HttpClientHTTP_CLIENT=HttpClients.createDefault();HttpPosthttpPost=newHttpPost(“http://localhost/fi

    2022年7月22日
    11
  • 用matlab画极坐标方程,matlab极坐标

    用matlab画极坐标方程,matlab极坐标把 polar b p 移到 end 上面 然后再在 end 上面加一句 holdon 试试更多追问追答 追问 b p L 180 R 50 fori 1 1000y integral t sqrt 1 pi pi 25 cos pi t 1000 2 0 i b 0 00 y r 1 pi pi 25 cos pi i 1000 2 1 5

    2026年3月18日
    2
  • Java设计模式之观察者模式

    本文继续介绍23种设计模式系列。介绍的是观察者模式。

    2022年3月11日
    45
  • js二维数组排序

    js二维数组排序nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp vararr nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp name zopp age 0 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp name gpp age 18 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp name yjj age 8 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp functioncomp p

    2026年3月17日
    2
  • MyBatis核心组件之SqlSessionFactory

    MyBatis核心组件之SqlSessionFactoryMyBatis的核心组件MyBatis的核心组件分为4个部分:SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分布构建的Builder模式。SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式。SqlSession(会话):一个既可以发送SQL执行返回结果,也可…

    2022年5月22日
    28
  • 深度|全民“养虾热”:从排队安装到付费卸载,释放什么信号?

    深度|全民“养虾热”:从排队安装到付费卸载,释放什么信号?

    2026年3月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号