What is the difference between find with grep?

情到浓时终转凉″ 提交于 2020-01-22 12:17:31

问题


What is the difference between these command:

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

and

find . –type f | grep 'txt'

I tried to run this and there is a difference but I want to know why?


回答1:


The Major difference is FIND is for searching files and directories using filters while GREP is for searching a pattern inside a file or searching process(es)

FIND is an command for searching file(s) and folder(s) using filters such as size , access time , modification time.
The find command lists all of the files within a directory and its sub-directories that match a set of filters.
This command is most commonly used to find all of the files that have a certain name.

To find all of the files named theFile.txt in your current directory and all of its sub-directories, enter:

find . -name theFile.txt -print

To look in your current directory and its sub-directories for all of the files that end in the extension .txt , enter:

find . -name "*.txt" -print

GREP :(Globally search a Regular Expression and Print)

Searches files for a specified string or expression.

Grep searches for lines containing a specified pattern and, by default, writes them to the standard output.

grep myText theFile.txt

Result : Grep will print out each line contain the word myText.




回答2:


In your first example, you are using the find utility to list the filenames of regular files where the filename includes the string txt.

In your second example, you are using the findutility to list the filenames of regular files and feeding the resultant filenames via a pipe to the grep utility which searches the contents of each file for the string txt. Each time the string is found, the corresponding line of the file is outputted.




回答3:


When you have a path with txt in the directory name, the second command will find a match. When you do not want to match paths like txtfiles/allfiles.tgz and transactions/txtelevisions/bigscreen.jpg you will want to use the first.



来源:https://stackoverflow.com/questions/43165447/what-is-the-difference-between-find-with-grep

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!