Monday, February 10, 2014

[Linux] 利用 find 加上 grep 命令去作檔案的內文搜尋(全文搜尋)


假設我們要找 .php 的檔案

find ./ -name "*.php" -exec grep -l "關鍵字" {} \;

find ./ -name "*.php" -exec grep -li "關鍵字" {} \;  (加上 i 代表不分大小寫)

註1:
如果你只想找一層就好,可使用 -maxdepth 1 這個參數,當然找三層就是
-maxdepth 3

註2:
grep 可使用萬用字元 如:*代表任意字元的任意文字  .代表單一字元的任意文字,如果要跳脫萬用字元,請使用\,例如 grep "aaa\.bbb"

註3:
另一種方式 使用 xargs
find . -name "*.php" | xargs grep "關鍵字"

註4:
-exec 參數後面跟的是command命令,它的終止是以;為結束標誌,所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜線。{} 花括弧代表前面find查找出來的檔案名。 <參考來源> <參考來源2>

No comments:

Post a Comment