批处理之find和findstr
1. find
在一个文件或多个文件中搜索指定的文本字符串。当搜索指定的文件后,find 将显示出包含指定字符串的所有行。
1.1. 语法及注释
find [/v] [/c] [/n] [/i] "string" [[Drive:][Path]FileName[...]]
/v
显示所有不包含指定 string 的行。/c
计算包含指定 string 的行并显示总数。/n
将文件行号置于每行开头。/i
指定搜索不区分大小写。"string"
必需。指定要搜索的字符组。必须将 string 包含在引号之内(即,“string”)。[Drive:][Path] FileName
指定要在其中搜索指定字符串的文件的位置和名称。/?
在命令提示符显示帮助。
1.2. 用法
指定字符串
如果不使用 /i,find 将精确搜索指定的字符串。例如,find 命令认为字符“a”和“A”是不同的。但是,如果使用 /i,find 不区分大小写,并将“a”和“A”视为同一个字符。如果要搜索的字符串包含引号,必须对包含在字符串中的单引号用双引号引起来,即"StringContaining"“QuotationMarks”。将 find 用作筛选器
如果省略文件名,find 将用作筛选器,从标准输入源(通常是键盘、管道或重定向的文件)得到输入,然后显示任何包含字符串的所有行。命令语法次序
可以按任何顺序键入 find 命令的参数和命令行选项。使用通配符
在用 find 命令指定的文件名或扩展名中不能使用通配符(* 和 ?)。要搜索使用通配符指定的一组文件中的字符串,可以在 for 命令中使用 find 命令。将 /v 或 /n 与 /c 一起使用
如果在相同的命令行中指定 /c 和 /v ,find 将显示不包含指定字符串的行数。如果在相同的命令行中指定 /c 和 /n,find 将忽略 /n。在 find 中使用回车
find 命令不能识别回车。当使用 find 在包含回车的文件中搜索文本时,必须将搜索字符串限制在可以在两个回车之间找到的文本,也就是不能被回车中断的字符串。例如,“tax”与“file”之间出现回车时,find 不会报告找到“tax file”字符串。
1.3. 示例
rem 在当前目录中的文件ben.txt中查找字符串"the pencil",并显示行号
find /n "the pencil" ben.txt
rem 字符串中包含引号,需要使用双引号
find "this is ""pencil""" ben.txt
rem 查找指定目录中的包含指定字符串的文件名
rem dir d:\test /b /s是显示指定目录中的所有文件然后通过|(管道号)将内容作为参数传递给find
dir d:\test /b /s | find ".exe"
rem 将结果输出到文件s.txt
find /n "the pencil" ben.txt > s.txt
rem <是重定向,可以重定向为管道、文件等,重定向为文件和指定文件作用相同。>将结果存在当前目录的s.txt中。
find /n "the pencil" < ben.txt > s.txt
2. findstr
find方法功能相对简单,如果需要更复杂的搜索,可以使用支持正则表达式的findstr。
2.1. 语法及注释
findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:file] [/f:file]
[/c:string] [/d:dirlist] [/a:ColorAttribute] [strings] [[Drive:][Path] FileName [...]]
/b
如果位于行的开头则匹配模式。/e
如果位于行的末尾则匹配模式。/l
使用文字搜索字符串。/r
使用搜索串作为常规表达式。Findstr 将所有元字符解释为常规表达式,除非使用了 /l。/s
在当前目录和所有子目录中搜索匹配的文件。/i
指定搜索不区分大小写。/x
打印完全匹配的行。/v
只打印不包含匹配的行。/n
在每个匹配的行之前打印行号。/m
如果文件包含匹配项,仅打印该文件名。/o
在每次匹配行之前打印查找偏移量。/p
跳过包含非可打印字符的文件。/offline
利用脱机属性设置处理文件。/f:file
从指定文件中读取文件列表。/c:string
使用指定的文本作为文字搜索字符串。/g:file
从指定文件得到搜索字符串。/d:dirlist
搜索以逗号分隔的目录列表。/a:ColorAttribute
使用两个十六进制数指定颜色属性。strings
指定要在 FileName 中搜索的文本。[Drive:][Path] FileName […]
指定要搜索的文件。/?
在命令提示符显示帮助。
2.2. 用法
findstr支持正则表达式。
Findstr 可以在任何 ASCII 文件或文件中精确查找所要查找的文本。然而,有时要匹配的信息只有一部分或需要查找更宽广的信息范围。在这种情况下,findstr 具有使用常规表达式搜索各种文本的强大功能。
正则表达式是用于指定文本类型的符号,与精确的字符串相反。标记使用文字字符和元字符。每个在常规的表达式语法中没有特殊意义的字符都是文字字符,与出现的该字符匹配。例如,字母和数字是文字符号。元字符是在正则表达式语法中具有特殊意义(操作符或分隔符)的符号。
下表列出 findstr 接受的元字符。
字符 | 值 |
---|---|
. | 通配符:任何字符 |
* | 重复:以前字符或类的零次或多次出现 |
^ | 行位置:行的开始 |
$ | 行位置:行的结尾 |
[class] | 字符类:集合中任何一个字符 |
[^class] | 反类:不在集合中的任何一个字符 |
[x-y] | 范围:范围:指定范围内的任何字符 |
\x | 取消:元字符 x 的文字用途 |
\<xyz | 字位置:字首 |
xyz\> | 字位置:字尾 |
2.3. 示例
rem 除非有前缀/C,请使用空格隔开搜索字符串,如果搜索hello或there
findstr "hello there" abc.txt
rem 在文件中搜索"hello there"
findstr /c:"hello there" abc.txt
rem 区分大小写,搜索Windows
findstr Windows abc.txt
findstr "Windows" abc.txt
rem 搜索当前目录及所有子目录中的每个文件
findstr /s Windows *.*
rem 搜索当前目录中所有txt文件中的包含"for"的所有行(前面可以有任意个字符包含空格)
findstr /n ".for" *.txt
rem 搜索指定文件中以for开头的字符串,将结果存在指定文件中
findstr /n "for*" a.txt > result.txt
rem 显示搜索的结果是否成功,0表示成功,1表示失败
echo %errorlevel%
rem 更多用法参考正则表达式
批处理之find和findstr相关推荐
- 常用批处理命令总结3之Find和FindStr
原文:常用批处理命令总结3之Find和FindStr find 作用:从文件中收索字符串 格式:find 参数 "字符串" 路径\文件名 参数: /V 显示所有未包含指定字符串的行 ...
- linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...
批处理 正则表达式(findstr) 整理 语法 findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offli ...
- 批处理---findstr命令详解
在文件中寻找字符串. FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file] [/C:string] ...
- 【WINDOWS / DOS 批处理】findstr、find命令对汉字的支持
在WINDOWS / DOS 批处理编程中,使用findstr.find命令都可在文件中查找文本,但是它们对汉字的支持都存在如下"缺陷": 使用 findstr.find命令查找汉 ...
- 批处理 正则表达式(findstr) 整理
http://www.jb51.net/article/17848.htm 语法 findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [ ...
- 常用批处理命令总结之Find和FindStr
find 作用:从文件中收索字符串 格式:find 参数 "字符串" 路径\文件名 参数: /V 显示所有未包含指定字符串的行. /C 仅显示包含字符串的行数. /N 显示行号. ...
- 批处理命令之find 和findstr
find 作用:从文件中收索字符串 格式:find 参数 "字符串" 路径\文件名 参数: /V 显示所有未包含指定字符串的行. /C 仅显示包含字符串的行数. /N 显示行号. ...
- c语言findstr 用法,常用批处理命令总结之Find和FindStr
find 作用:从文件中收索字符串 格式:find 参数 "字符串" 路径\文件名 参数: /V 显示所有未包含指定字符串的行. /C 仅显示包含字符串的行数. /N 显示行号. ...
- 【WINDOWS / DOS 批处理】findstr命令之参数详解(一)
目录 命令格式 命令功能 [filename参数] [/I参数] [/N参数] [/X参数] [/F:file参数] [/G:file参数] [strings和/C:string参数] [/R参数和/ ...
最新文章
- 通俗易懂的讲解区块链
- linux下字符串操作,Linux Bash 中字符串操作
- Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录
- 第五部分 自定义的Calendar接口示例
- c语言练习书,谁有C语言入门的练习题?
- 使用SVN clang: error: linker command failed with exit code 1 (use -v to see invocation)
- Python基础函数学习笔记(二)
- GNN + Zero-shot
- 计算机显示程序错误,电脑老是提示应用程序错误怎么办
- linetv_linetv台湾版官方下载|line tv安卓版下载_v1.0.10_9ht安卓下载
- 三阶段最小二乘法 回归分析 3SLS python实现
- 城域网过渡技术之NAT64+DNS64
- Swiper实现手风琴式的图片展示
- pointer-events用法
- 美味冰皮月饼的做法 月饼的做法
- 主引导记录、启动扇区
- 微信 iPad 835协议
- php printer 使用,printer扩张的一些使用疑问
- matlab图像处理将两个目标合成一个,利用MATLAB实现医学图像处理与分析
- XMind中让分支显示在同一侧
热门文章
- 盒子滚动到底部有偏差 js_杭州连廊支座厂家销售,滚动铰支座_衡水安通
- linux 命令之 echo
- 见字如面,一切安好?
- 星巴克中国内地首家共享空间概念店上海开业;加拿大鹅将在哈尔滨南京宁波等地新设门店 | 美通社头条...
- 前端相关知识(html)
- 关于整除和取余的理解
- Udacity利用深度学习玩赛车小游戏
- php 匹配多个正则表达式,PHP 正则表达式函数库(两套)
- npm 报错 npm WARN lifecycle npm is using C:\Program Files\nodejs\node.exe but there is no node binary
- arm-linux-gcc编译x264