问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

批处理文件中 find 命令的例子

发布网友 发布时间:2022-02-26 09:38

我来回答

3个回答

热心网友 时间:2022-02-26 11:07

1、首先登录linux系统,输入用户和密码登录linux系统。

2、然后鼠标右键选择打开终端菜单,即可打开终端命令,

3、find命令用法说明。输入命令:find  --help,可查看该命令的使用说明。

4、输入命令:find -name "*.txt",查找后辍名为.txt的文件。

5、最后输入命令:find Test2 -name "*.txt",在目录Test2下查找后辍名为.txt的文件。

热心网友 时间:2022-02-26 12:25

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 ""

参考资料:http://www.hackbase.com/tech/2009-10-26/57331.html

热心网友 时间:2022-02-26 14:00

常用的:
type log.txt | find "2011-11-11" |find "Data" ,显示log.txt文件中既含有2011-11-11也含有Data的行。
find /V /C "" log.txt 统计文件log.txt的行数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 CAD中Find命令的使用,求大神解答? linux中find命令的使用方法有哪些? unix中find命令的用法 unix中的find指令怎么用啊 关于QQ邮箱域名 如何使用find命令查找文件? QQ邮箱与163邮箱相比,那个更安全?注册域名用那个邮箱最好? qq邮箱域名 find命令的常用操作? 怎么申请注册域名公司邮箱? 关于find命令的使用 注册免费域名不能使用qq邮箱吗 linux find命令怎么用 QQ邮箱注册的域名转出 命令提示符(DOS)下Find的用法 我通过QQ邮箱注册了新网的域名 linux中find命令的使用方法有哪些 注册域名拥有邮箱? CMD的find命令怎么用? 如何使用自己的域名来注册邮箱 find指令是linux中的功能最齐全的搜索指令,求用法! 怎么申请带有域名的邮箱呀? 怎么注册带有域名的邮箱? 如何在linux系统中设置静态ip地址 有域名怎么注册邮箱 怎么申请带有域名的邮箱 以有域名了,如何申请域名邮箱 如何安装java环境 centos7 centos怎么安装java开发环境 centos上怎么配置java环境 怎么注册企业邮箱域名? 如何在centos7中安装java环境变量 centos7中怎么搭建java环境 单位域名的邮箱怎么注册? centos7怎么安装java 怎么注册自定义邮箱域名! centos 怎么安装java 怎么在centos7上安装jdk centos 上如何安装jdk 域名邮箱如何申请?