位置: 编程技术 - 正文
推荐整理分享批处理入门手册之批处理常用DOS命令篇(find findstr)(批处理程序教程),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:批处理语言 从入门到精通,批处理有什么用,批处理操作步骤,批处理程序教程,批处理操作步骤,批处理程序教程,批处理程序教程,批处理基础知识,内容如对您有帮助,希望把文章链接给更多的朋友!
1.4 学习 find findstr 命令
学习要点:1.字符串查找:find2.字符串查找增强:findstr
一.字符串查找:find
在文件中搜索字符串。FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。 /C 仅显示包含字符串的行数。 /N 显示行号。 /I 搜索字符串时忽略大小写。 /OFF[LINE] 不要跳过具有脱机属性集的文件。 "string" 指定要搜索的文字串, [drive:][path]filename 指定要搜索的文件。
基本格式:find "要查找的字符串" 要查找的文件(不在当前目录则需要给出完整路径)
例1find "abc" d:abc.txt在abc.txt中查找字符串abc的行。
/I 搜索字符串时忽略大小写。
例2find /i "abc" d:abc.txt参数/i代表的是“Ignore”(忽略),也就是忽略大小写。通过/I 参数可以不区分要查找的字符串“abc”的大小写。
/N 显示行号。
例3find /n "abc" d:abc.txt参数/n代表英语单词“Number”(号码).。通过/n参数我们可以查找到字符串"abc"所在的行号。
/C 仅显示包含字符串的行数。
例4find /c "abc" d:abc.txt参数/c是英语单词“Count”(计数)的缩写。通过/c参数我们可以统计包含"abc"字符串的行数。
/V 显示所有未包含指定字符串的行。
例5find /v "abc" d:abc.txt这个参数用于找出文件中不包含指定字符串的行。在这里表示查找不包含"abc"字符串的行。
注意:find命令中要查找的字符串一字要用双引号" "括起来。
二.字符串查找增强: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 指定要查找的文件。
除非参数有 /C 前缀,请使用空格隔开搜索字符串。例如: 'FINDSTR "hello there" x.y' 在文件 x.y 中寻找 "hello" 或"there" 。 'FINDSTR /C:"hello there" x.y' 在文件 x.y 寻找 "hello there"。
1.基本格式:findstr " strings " [drive:][path]filename
Strings 是要查找的内容。[rive:][path]filename 指定要查找的文件,路径可缺省,缺省情况下为当前目录。
例1findstr "icq" .txt在.txt中查找包含有“icq”这三个字符串的行。
/I 指定搜索不分大小写。
例2findstr /i "MSN" .txt在.txt中查找包含有“MSN”这三个字符的行,且不区分大小写。
★/R 将搜索字符串作为正则表达式使用。参数/R 强调以正则表达式规则来解读字符串。R - Right 右即为正。我们都说右手是正手,因此引申为右为正,左为反。
例3findstr /r "icq msn" .txt在.txt中查找包含有 “icq”或“msn”的行,查找的多个字符串间用空格隔格开。
/S 在当前目录和所有子目录中搜索。
例4findstr /s /i "MSN" *.txt在当前目录和所有子目录中的txt文件中搜索字符串"MSN"(不区分字母大小写)。
/C:string 使用指定字符串作为文字搜索字符串。
例5findstr /c:"icq msn" .txt在.txt中查找包含有 “icq msn”这几个字符的行。注意,这里“icq msn”是一整体的。此参数多用于查找含有空格的字符串。
★在使用 findstr "我 你 他" test.txt 的时候,并不能查找到内容,但是,加上开关 /i 或者 /r 之后就正确无误了,可能是在查找多个纯中文字符串的时候的一个bug吧;单个的纯中文字符串没有任何问题。
2.findstr 命令中正则表达式的用法规则
一般表达式的快速参考: . 通配符: 任何字符 * 重复: 以前字符或类别出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [class] 字符类别: 任何在字符集中的字符 [^class] 补字符类别: 任何不在字符集中的字符 [x-y] 范围: 在指定范围内的任何字符 x Escape: 元字符 x 的文字用法 <xyz 字位置: 字的开始 xyz> 字位置: 字的结束
● 通配符和重复符规则,即 . 和 *通配符,即一个句点,代表任何一个字符,而且只能是一个,包括字母、数字、半角符号还有空格。重复符,即型号* 代表前面字母的出现次数(出现次数从0到多次,0表示没有)。
findstr . .txt 或 findstr "." .txt在文件.txt中查找任意字符,不包括空行。
例6findstr .* 2.txt 或 findstr ".*" 2.txt在文件.txt中查找任意字符,包括空行。
例7findstr ac* .txt 在文件.txt中查找出现一个“a”字符串,以及a后面出现过0次或者任意次c的字符行。如:a acaccaddc等都匹配。
例8findstr ak5* .txt 在文件.txt中查找出现一个“ak”字符串,以及ak后面出现过0次或者任意次5的字符行。如:akak5akbbbakak等都匹配。
●行首、行尾符规则,即 ^ 和 $
例9findstr "^step" .txt在文件.txt中查找行首为step字符串的行。如:stepkdkastep 这两行都匹配的。
例findstr "step$" .txt在文件.txt中查找行尾为step字符串的行。如: dstepstep这两行也匹配的。
例findstr "^step$" .txt在文件.txt中查找行首为step,且行尾也为step的行,即step独自一行。
● 字符集规则,即[class]①表示含有集里的任意一个字符的即匹配。②该字符集里的元素可以是字母和数字和一般的半角字符,如:}{ ,.][等,但双引号"不被识别。不能是汉字, 汉字不被正确解释(汉字不是ASCII码)。如果在字符集内插入通配符和重复符号,即"[.*]"将会把. 和 *视为普通字符,没有通配和重复的含义。
例findstr "[0-9]" .txt在文件.txt中查找数字0-9的任意之一的行。如:4kkb1 lkka cc这两行都匹配。
例findstr "[a-zA-Z]" .txt在文件.txt中查找包括任意字母行。
例findstr "[abcezy]" 2.txt在文件.txt中查找包括a b c e z y其中任意一字母的行。
例findstr "[a-fl-z]" 2.txt在文件.txt中查找小写字符a到f 或l到z的任意一字母的行,但不包含g h I j k这几个字母。
例findstr "M[abc][]Y" 2.txt在文件.txt中查找可以匹配 Ma1Y , Mb1Y, Mc1Y; Ma2Y , Mb2Y, Mc2Y; Ma3Y , Mb3Y, Mc3Y的行。
● 减法规则,即[^class]
例findstr "[^0-9]" .txt如果是纯数字的行便过滤掉,例如 这样的字符串被过滤,hh这样的形式则过滤不了。注意,纯数字的行不能有空格,不论行首行尾或者是行中都不能有空格,否则过滤失败!
例findstr "[^a-z]" .txt如果是纯字母的行便过滤掉,例如 sdlfjlkjlksjdklfjlskdf 这样的字符将被过滤,如果是sdfksjdkf这样的形式则过滤不了。注意,纯字母的行不能有空格,不论行首行尾或者是行中都不能有空格,否则过滤失败!
例findstr "[^add]" .txt过滤仅含有由a d d三个字母组成的纯字母字符串的行。 如:aadddaadddd这些行都会被过滤。注意,仅含有由a d d三个字母组成的纯字母字符串的行不能有空格,不论行首行尾或者是行中都不能有空格,否则过滤失败!
例findstr "[^echo]" .txt过滤仅含有由e c h o 四个字母组成的纯字母字符串的行。 如:ececchochooo这些行都会被过滤。
●单词前缀后缀定位规则,即<xyz和xyz>
该xyz可以是英文单词或数字,但不适用于汉字。符号 理解为转义符,化解小于号和大于号的重定向命令含义。该规则是匹配类似单个英文单词的。
例findstr "<echo" .txt所有含有以echo为前缀的字符串的行,都匹配。如:echo:kkk a add jjkk echo这两行都匹配。(思考:为什么:echo也匹配?)
例findstr "echo>" .txt所有含有以echo为后缀的字符串的行,都匹配。如:qq bbecho 这一行也匹配。 (思考:为什么kkkk echo:也匹配?)
例findstr "<end>.txt这里是用来精确查找单词。查找单词end的行,注意:endedcdkendbcd-end-jjkk这类词都不匹配。(思考:为什么end echo和end也匹配?因为<xyz>格式要查找的是单个英文单词。)
● 转义符 把表达式中的特殊字符(元字符)转化为普通字符。常见写法:. * \ [ ]-
例findstr ".abc" .txt在文件.txt中查找可以匹配“.abc”字符串的行,这里。是把。给转义了。
例findstr "1\" .txt 或findstr "1\\" .txt在文件.txt中查找可以匹配“1”字符串的行,这里\是把给转义了。
★要查找的字符串含有时,可以用\把给转义;或者把变成\\。如果目标字符串的后面还有内容,则搜索字符串除了要变成\(本身的转义要求),还可以在它后面再加一个字符,如\.
批处理常用网络命令和符号篇 2.1学习pingipconfigarpstartshutdowntaskkill命令学习要点:1.测试IP连接:ping2.查看IP配置:ipconfig3.解析地址:arp4.开启命令:start5.关闭或重启计算机:shu
dos 环境变量延迟扩展enabledelayedexpansion详解 一,什么是延迟环境变量扩展?延迟变量全称"延迟环境变量扩展",要理解这个东西,我们还得先理解一下什么叫变量扩展!CMD在解释我们的命令的时候,首
bat命令入门与高级技巧详解 目录第一章批处理基础第一节常用批处理内部命令简介1、REM和::2、ECHO和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode配置系统设备8、GOTO和:9、FIND、START、as
标签: 批处理程序教程
本文链接地址:https://www.jiuchutong.com/biancheng/371616.html 转载请保留说明!友情链接: 武汉网站建设