2012-04-08 2 views
0

여러 파일, 디렉토리 및 하위 디렉토리가있는 큰 프로젝트에서 작업한다고 가정 해 보겠습니다. 이 디렉토리/하위 디렉토리/파일 중 하나에서 메소드를 정의했지만 이제는 전체 프로젝트에서 어떤 메소드가 호출되었는지 정확히 알고 싶습니다. 어떻게 할 수 있니?특정 문자열을 포함하는 모든 파일을 어떻게 검색합니까?

+0

어떤 언어로 작성 하시겠습니까? C++, java, ..? – Rps

+1

주로 자바. 하지만 "grep"을 어떻게 든 사용하여이 작업을 수행 할 수있는 방법이 아닌가요? –

답변

0

가장 일반적인 방법은 편집기를 사용하는 것입니다. 예를 들어, emacs는 etags로 태그 색인을 생성하면 이것을 할 수 있습니다.

출처 : http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/etags.html

당신 단지 유형 M-. 방문하고자하는 함수의 이름을 입력하면 이맥스가 거기로 이동합니다.

어떤 시스템이나 어떤 편집기를 사용하고 있는지 모르지만 대부분의 편집자는 simular 기능을 가지고 있습니다.

이맥스를 사용하지 않고 기능을 추적하고 다른 많은 좋은 기능을 얻는 다른 좋은 방법은 버전 제어 시스템을 사용하는 것입니다. 자식과 마찬가지로, 정말 빠른 검색을 제공합니다.

버전 제어 시스템을 사용하지 않는 경우 검색 전용으로 설계된 프로그램을 살펴볼 수 있습니다. OpenGrok처럼.

0

당신은 grep에 대해 언급 했으므로이 해결책을 거기 밖으로 던질 것입니다. 보다 견고한 솔루션은 Fibbe가 제안한대로 버전 제어 시스템을 구현하는 것입니다.

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

아이디어는 현재 디렉토리와 하위 디렉토리에서 발견되는 각 파일에 대해, 인은 'METHOD_NAME'에 대한 그렙 해당 파일에서 실행됩니다. 2> /dev/null은 액세스 권한이없는 모든 디렉토리와 파일에 대해 경고하고 싶지 않은 경우에 유용합니다.

관련 문제