linux之查找包含指定內容(字符串)的文件


linux之查找包含指定內容(字符串)的文件 

文件內容包含指定字符串

find . | xargs grep string

 

查找當前目錄下文件內容包含字符串string的文件
為什么要這樣寫,因為管道命令符是把上一部的結果傳遞給下一步來處理,在 find . | grep string中雖然看似和find . | xargs grep string差不多,但是實際上還是有區別的。應為find .得到的結果是一串文件名集合,如果直接傳遞給grep的話,grep會把這些文件名看作一些無意義的字符串來處理。但是傳遞給xargs,他會把他當作一個有意義的文件來處理。


文件包含指定字符串

find . -name 'string'

 

查找當前目錄下文件名包含字符串string的文件
如果要查找文件名中不包含字符串string的文件,可以使用!(取非,也就是取反)。
find . ! -name 'string'

 

組合使用在指定目錄下查找包含某個字符串的文件名為某個的內容

find /tmp/ -name test.txt | xargs grep "hello"

可以查找到tmp目錄下文件名test.txt並包含字符串hello的文件

 

路徑下逐一查找文件名的字符串資源

find 路徑 -type f  -name "文件名" | xargs grep “搜索的字符串”

find /root/shell/ -type f -name '*'|xargs grep "daxin"

 

每個目錄都查找,可以查找到tmp目錄下文件名test.txt並包含字符串hello的文件

find rt -type f | xargs grep -il root

find rt -type f 是逐一查找每個文件,在各層目錄中。

因為這里grep命令使用了參數 -l,表示查詢文件中包含root字符串的文件名。
查找字符串的對象的是文件里的內容,而不是文件名本身。使用xargs使得find查找出的文件名作為grep的參數,而不能作為標准輸入。
如果不用xargs,則查找的是文件名中包含root字符串的項。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM