字符串查找 cmd find命令
字符串查找 cmd find命令
作者: 字体:[增加 减小] 类型:转载 时间:2009-07-05 我要评论
find /? 的执行结果很快,唰的一下,帮助信息全出来了,与findstr命令10多个开关比起来,find仅有5个开关,算得上小巫见大巫了。
find命令的基本格式是这样的:find "要查找的字符串" 要查找的文件,在这里,"要查找的字符串"这个内容是必不可少的,引号也是必须的。例如:find "bathome" d:\test.txt,表示在D盘根目录下的文本文件test.txt中查找含有 bathome 这一字符串的所有行。
find的结果将会有两种情况:
1、当文件中包含要查找的字符串时,将返回这个字符串所在位置的整行内容,具体格式为:第一行是"---------- ×××" (×××表示被查找的文件名,不包括引号对),第二行开始才出现包含字符串的整行内容;
2、当文件中没有出现要查找的字符串时,find的结果仅仅返回"---------- ×××" 这一行内容(×××表示被查找的文件名,不包括引号对)。
在查找指定字符串的时候,有的场合需要区分大小写,有的场合则对大小写并不在意,如何实现这些需求呢?
很简单,在find的时候,添加或取消/i开关就是了,具体用法为:find /i "Abc" test.txt 表示不区分大小写,文本内容中含有 Abc、abc、ABC之类的都算;find "Abc" test.txt则严格区分字符大小写,只能匹配Abc,而不能匹配abc、ABC之类的字符。
有时候,我们的需求并不是为了查找到某个字符串,而是要检测哪些行不含有特定的字符串,这个时候,可以使用开关/v,用法为:find /v "Abc" test.txt,它表示查找那些不含字符串Abc的行(Abc要区分大小写),如果不区分abc的大小写,那么,应该写成 find /i /v "Abc" test.txt。
有时候,我们的要求很简单,仅仅只是想统计包含某个字符串的行总共有多少,这个时候,应该使用开关/c,写成 find /c "abc" test.txt。
如果要在每行的行首显示行号,怎么办?那就写成 find /n "abc" test.txt 吧,它会把test.txt的内容都显示出来,与原文不一样的是,在每行内容的行首,都加上了行号——注意,它仅仅是在显示的时候加上行号而已,并没有真正改写文件的内容。
如果你看到这样的命令:find /i /v /n "Abc" test.txt,请一点要先沉住气,不要被众多的开关弄得眼花缭乱吓趴下了,仔细对照上面的解释,相信你很快就会理解它的功能:在test.txt文件中,查找不包含字符串Abc的所有行,并在行首标上这些行的行号,查找的时候,字符串Abc不区分大小写。
要是使用这样的语句:find /c /n "abc" test.txt,会出现什么样的结果呢?答案是:开关/n会被忽略掉,最终结果不会显示带行号的行内容,只会显示匹配的总行数而已。
echo abcdef|find "abc",见过这种写法吗?它的含义是:在字符串abcdef中,检测是否存在字符串abc,也就是说,find支持管道符号,把管道符号之前的语句的执行结果,作为指定字符串的查找对象,甚至,你可以使用这样的语句:find "abc" test.txt|find "xyz",它表示在test.txt中查找同时存在字符串abc和字符串xyz的行,只要你愿意,你可以继续用管道符号把这个find语句连接下去,我们把这个过程称为多重过滤。
在前面,我们说过,在 find "要查找的字符串" 要查找的文件 这条命令语句中,引号是必须的,要是我们要查找的内容就是双引号本身,那又该怎么办?
答案很简单:把双引号本身先用双引号转义,再放到双引号对中,写成 find """" test.txt 的格式,如果要查找两个连续的双引号,则应该写成 find """""" test.txt。
如果你想查找两行之间的字符块,我劝你趁早放弃这个疯狂的想法,因为,find仅仅针对位于同一行上的字符串,不能查找跨行的字符块。
与findstr命令相比,find的功能确实有限得多,仅仅因为不支持正则表达式这一点,就有不少人把它视为鸡肋,从而遭到无情的抛弃。
然而,find并非一无是处,凭借自己的独门绝技,在与findstr的竞争中,它挣得了一席之地。
这些独门绝技是什么呢?(感谢BatCoder的提醒和zqz0012005的补充)
1、统计含指定字符串的总行数。find /c "abc" test.txt可以统计test.txt中含有字符串abc的总行数,而findstr则没有直接提供该功能,需要配合for语句才能实现;
2、find可以读取Unicode格式的文本,而findstr则不行;
3、find可以过滤某些特殊字符,而findstr则不行,比如,我们在使用fsutil fsinfo drives语句查询磁盘分区的时候,如果想让盘符分行显示而不是显示在同一行上的时候(这在用for语句提取盘符的时候很有用),find可以大显身手,而findstr只能干瞪眼了,具体语句为:fsutil fsinfo drives|find /v ""
相关文章
- 2008-06-06写批处理必备的一些命令参数使用技巧
- 2007-08-08bat与注册表操作的方法分析
- 2008-08-08CMD CODE PAGE的概念及其设置值使用方法
- 2014-07-07批处理中如何判断参数中含有某些字符串?
- 2012-11-11Windows批量添加防火墙例外端口的批处理代码
- 2008-06-06Emeditor与dos(cmd)经典使用技巧之批量生成网页
- 2009-05-05百度关键字搜索(批处理打开网页)
- 2010-07-07批量列出所有文件名的批处理
- 2013-05-05用BAT实时读取某个文件目录下文件数(包括子目录)
- 2006-11-11巧用net命令解决XP中打印连接数问题
字符串查找 cmd find命令相关推荐
- cmd html 查找汉子字,字符串查找 cmd find命令
字符串查找 cmd find命令 2009-07-05 14:33:02 作者: 当我要查找字符串的时候,第一个想到的命令,并不是我在本文中要讲解的find,而是比它更强悍的命令findstr. 我对 ...
- linux全局查找字符串,Linux系统字符串查找命令详细说明
Linux系统中有时候需要特定的查找字符串的功能.下面由学习啦小编为大家整理了Linux系统字符串查找命令详细说明,希望对大家有帮助! Linux系统字符串查找命令详细说明 1.作用 Linux系统中 ...
- cmd批处理命令大全1
cmd和批处理命令大全 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on|off}] [message] Sa ...
- Windows cmd常用命令行命令
Windows常用命令行命令 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注: ...
- cmd常用命令大全 cmd运行命令
cmd常用命令大全 2k和xp下的cmd命令 accwiz.exe > 辅助工具向导 acsetups.exe > acs setup dcom server executable a ...
- 【windows命令】--cmd常用命令
打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后关闭cmd ...
- windows命令提示符cmd常用命令
首先,打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... { 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注:/c表示执行完命令后 ...
- 【网络安全】Windows cmd的命令混淆学习思路
前言 最近有些朋友问我一些免杀问题,由于个人技术有限,对静态免杀有些了解(动态免杀真的不会,太菜了),所以就总结了一些Windows中cmd的命令混淆思路,静态免杀无非就是对安全设备检测到代码(命令) ...
- linux几种常见的文件内容查找和替换命令
1.vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配 ...
最新文章
- 树莓派避障小车(python)
- 数据库字符mysql_MySQL数据库之字符函数详解
- 什么是传感器融合?我们从“盲人摸象”讲起……
- 如何配置Microsoft LoopBack Adapter 配置为系统的主网络适配器
- 计算机网络核心知识(中)
- 39页第7题 计算2的i次方之和
- Jquery实用笔记
- 这不是商业互吹,是学习的宝藏
- 通过模板设计按钮样式
- 程序员工资为什么普遍很高,原来是因为这个...
- 自己给打印机怎么加粉墨,联想兄弟打印机加粉步骤
- linux下卸载grads,linux下安装grads
- 提高iOS开发效率的方法和工具
- 《Cocos Creator游戏实战》在游戏中显示弹幕
- 【Spring MVC】Json 前后端合并
- linux中test命令详解
- PS做文字特效nbsp;
- liunx安装node
- ESP32 Wi-Fi讲解,station连接热点案例
- SQL Compare数据库如何解决部署时出现的错误
热门文章
- 【数据库】Oracle基础命令
- IoT黑板报0210:Google 发布 Android Things 开发者第二预览版
- Pinyin4j的基本用法
- word打印“错误!未找到引用源”的解决办法
- HTMLbutton 标签和input type=button的区别
- 【1】深度学习之饮水思源:从感知机到深度网络
- 2.3 文 法 和 语 言 的 形 式 定义
- 大数据培训:Spark 性能调优详解
- Python模块介绍(如何安装、使用)
- 计算机英语过级考试开挂,四六级口语:开挂攻略+考试黄金模板!