Unix find和grep之间有什么区别?

Unix find和grep之间有什么区别?,unix,find,command,Unix,Find,Command,这些命令之间的区别是什么: find . –type f –name '*txt*' 及 我尝试运行此程序,但存在差异,但我想知道原因是什么?在第一个示例中,您正在使用查找实用程序列出常规文件的文件名,其中文件名包含字符串txt 在第二个示例中,您使用find实用程序列出常规文件的文件名,并通过管道将生成的文件名提供给grep实用程序,该实用程序在每个文件的内容中搜索字符串txt。每次找到字符串时,都会输出文件的相应行。当目录名中有一个路径为txt时,第二个命令将找到匹配项。当您不想匹配像t

这些命令之间的区别是什么:

find . –type f –name '*txt*' 


我尝试运行此程序,但存在差异,但我想知道原因是什么?

在第一个示例中,您正在使用
查找
实用程序列出常规文件的文件名,其中文件名包含字符串
txt


在第二个示例中,您使用
find
实用程序列出常规文件的文件名,并通过管道将生成的文件名提供给
grep
实用程序,该实用程序在每个文件的内容中搜索字符串
txt
。每次找到字符串时,都会输出文件的相应行。

当目录名中有一个路径为
txt
时,第二个命令将找到匹配项。当您不想匹配像
txtfiles/allfiles.tgz
transactions/txtelevisions/bigscreen.jpg
这样的路径时,您会希望使用第一个路径。

主要的区别是FIND用于使用过滤器搜索文件和目录,而GREP用于搜索文件或目录中的模式搜索过程(es)

FIND是一个使用大小、访问时间、修改时间等过滤器搜索文件和文件夹的命令。
“查找”命令列出目录及其子目录中与一组筛选器匹配的所有文件。
此命令最常用于查找具有特定名称的所有文件

要查找当前目录及其所有子目录中名为file.txt的所有文件,请输入:

find . -name theFile.txt -print
要在当前目录及其子目录中查找以.txt扩展名结尾的所有文件,请输入:

GREP:(全局搜索正则表达式并打印)

在文件中搜索指定的字符串或表达式

Grep搜索包含指定模式的行,并在默认情况下将其写入标准输出

grep myText theFile.txt


结果:Grep将打印出包含单词myText的每一行。

如果您尝试运行此操作,但存在差异,则您已经知道差异所在。我们还能告诉你什么?是的,但我想知道为什么会有不同
find . -name theFile.txt -print
find . -name "*.txt" -print