1. 程式人生 > 其它 >linux之查詢包含指定內容(字串)的檔案

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字串的項。