2012-04-08 165 views
0

假設您正在處理一個包含多個文件,目錄和子目錄的大項目。在其中一個目錄/子目錄/文件中,你已經定義了一個方法,但是現在你想知道整個項目中哪些文件已經調用了你的方法。你怎麼做到這一點?如何搜索包含特定字符串的所有文件?

+0

用什麼語言寫你的項目? C++,java,..? – Rps 2012-04-08 20:08:44

+1

主要是java。但沒有辦法做到這一點使用「grep」莫名其妙? – 2012-04-08 20:09:55

回答

0

執行此操作的最常見方法是使用您的編輯器。例如,如果您使用etags創建標籤索引,emacs可以執行此操作。

來源:http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/etags.html

的你只是類型M-。並輸入您想要訪問的功能的名稱,emacs會將您帶到那裏。

我不知道你使用的是哪個系統或哪個編輯器,但大多數編輯器都有一個相似的功能。

如果您不使用emacs來跟蹤功能並獲得許多其他優秀功能的其他好方法,那就是使用版本控制系統。就像git一樣,它提供了非常快速的搜索。

如果您不使用版本控制系統,您可能需要查看專門用於搜索的程序。像OpenGrok

0

你提到了grep,所以我會把這個解決方案放在那裏。一個更強大的解決方案是按照Fibbe的建議實施版本控制系統。

find . -exec grep 'method_name' {} \; -print 2> /dev/null

的想法是,對於在當前目錄和子目錄中的每個文件,對「METHOD_NAME」一個grep在該文件執行。 2> /dev/null是不錯的,如果你不想得到所有你無法訪問的目錄和文件的警告。

相關問題