天天看點

在Linux下查找檔案内容包含某個特定字元串的檔案

如何在Linux下查找檔案内容包含某個特定字元串的檔案?

我的目錄下面有test1和test2兩個檔案夾,裡面都含有很多檔案,其中test2裡面還包含一個test檔案夾

我想請問的是,如何通過查找關鍵字test進而找到test1跟test2還有test,并且不顯示其他檔案

我嘗試過用find /path -name test查找,結果出來的是/path/test2/testls test*查找,結果連同test1跟test2裡面的子檔案都顯示出來,羅列了一大堆我還嘗試了用find test*查找,結果跟用上面的一樣,隻是羅列的方式不一樣而已

以下是對查找常用的指令歸納【相應大家在linux上常用】

find:

查找檔案:find ./actions/ -name Constract.php查找包含leyangjun字母的檔案:find /etc -name '*leyangjun*'查找srm開頭的檔案:find/etc -name 'srm*'我們要在/usr目錄及子目錄下查找檔案名包含“leyangjun”關鍵字的檔案:find /usr -print |grep leyangjun

grep:

在Constract.php檔案中查找字元leyangjun的行:grep 'leyangjun' Constract.php不區分大小寫地搜尋。預設情況區分大小寫:grep -i 'ModifySubacction' controllers/Constract.php

管道查詢:

從根目錄開始查找所有擴充名為.log的文本檔案,并找出包含”leyangjun”的行:find / -type f -name "*.log" | xargs grep "leyangjun"

目前目錄開始查找所有擴充名為.php的文本檔案,并找出包含”leyangjun”的行:find ./ -name "*.php" | xargs grep "leyangjun"

繼續閱讀