全文搜尋工具介紹: grep, git grep, sublimetext
grep
grep 是多數人最常用的全文搜尋工具,每台 linux box 都有,但速度慢,而且要搭配 find 才好用
最常用的指令是
grep -Hnir foo bar
要搜尋 header and source files 則可以用
grep -Hnir --include \*.h --include \*.c foo bar
或者是透過 find
find . \(-name '*.h' -o -name '*.c' \) --exec grep -Hinr foo {} \; -print
The Silver Search (ag)
The Silver Searcher (ag) 很不錯,是我目前的主力,git grep 這工具是我第一次看到,但效能也很不錯,但限定在有放在 git repo 內的檔案
使用 ag
or git grep
的優點是在搜尋時會自動套用 .gitignore
避開不必要的搜尋,加快搜尋速度
ag 要搜尋 header and source files,可以用 -G
的參數後加上 regexp pattern
ag -i -G '(.h|.cpp)$' 'foo' /bar/
或者是只要搜尋 Android.mk 檔案的內容
ag -G 'Android.mk' 'foo'
ag 要顯示 Context,也就是搜尋目標前後的文字,可以用 -C 2
的參數
ag -i -G '(.h|.cpp)$' -C 2 'foo' /bar/
ag 也有 Windows 版本,可由此下載 The Silver Searcher windows port
SublimeText
SublimeText 的 Find in Files 也很好用,能夠顯示 context (搜尋目標前後行),也能點擊檔名與關鍵字開啟檔案,很像 grep.vim ,不過是圖形介面
也可利用 SublimeText Package 的 Search In Project 呼叫 ag 進行全文搜尋