linux之查詢包含指定內容(字串)的檔案
阿新 • • 發佈:2022-03-22
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字串的項。