和grep有什么区别?

时间:2017-04-02 06:52:17

标签: unix find command

这些命令有什么区别:

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

find . –type f | grep 'txt'

我试图运行它并且存在差异,但我想知道为什么?

3 个答案:

答案 0 :(得分:6)

主要区别是 FIND 用于使用过滤器搜索文件和目录,而 GREP 用于搜索文件内的模式或搜索过程< / em>的

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

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

find . -name theFile.txt -print

要查看当前目录及其子目录中所有以扩展名.txt结尾的文件,请输入:

find . -name "*.txt" -print

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

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

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

grep myText theFile.txt

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

如果目录名中有txt的路径,则第二个命令将找到匹配项。如果您不想匹配txtfiles/allfiles.tgztransactions/txtelevisions/bigscreen.jpg等路径,则需要使用第一个路径。