1. 程式人生 > >[Linux] 搜尋資料夾底下 檔案內部文字

[Linux] 搜尋資料夾底下 檔案內部文字

附了下面的用法,我比較常用

grep -lr "keyword" *

這個指令在Mac OSX/ linux 下都通用。

自從改用Mac之後,很多之前Windows習慣使用的東西,都要重新學習在新的平臺上怎麼去操作,這次是要找出某個資料夾裡的特定文字,並顯示其檔案名稱出來,Windows裡我都是請Notepad++ 來幫我找,現在Linux/Mac 的環境下就透過指令吧,Mac OS X 的 Finder 好像內建也有查檔案內容的樣子。

find . -exec grep -H "contango_get_image" {} \;

Screenshot 2016-05-12 10.11.30.png

我所使用的指令是:

find . -exec grep -H "contango_get_image" {} \;

是要在現行目錄下,找出有 contango_get_image 文字的檔案出來。

========================

find "path name" -name "file name" -exec grep -H "search content" {} \;

find原本是用「檔案名稱」來搜尋在哪些地方有這些檔案,將這些路徑結果餵給grep後,就可以拿來搜尋檔案內部的文字片段。

Ex:

find ./kernel -name "*.c" -exec grep -H "main" {} \;

以上這段指令,是要搜尋./kernel底下所有的.c檔,內容含有”main”的地方。

find的引數:

  • -name 要搜尋哪些檔名
  • -exec utility name [argument…] {} \;
    搜尋出的檔名 交給哪個執行檔(utility name)處理
    {} 會被find搜尋後的檔名路徑名稱所取代
    \; 代表exec的引數到此為止

grep的引數:

  • -H 列出搜尋到的檔案名稱路徑