콘텐츠의 일부로 파일 찾기

콘텐츠의 일부로 파일 찾기

특정 저장소에 많은 파일이 있고 콘텐츠에 특정 문자열이 있는 파일을 찾아야 합니다(실제로 파일 참조 Version.cc.in). 그것을 찾는 가장 좋은 해결책은 무엇입니까?

답변1

grep을 사용할 수 있습니다.

grep "text" /path/to/directory/*

-r재귀 검색의 경우 grep 옵션을 사용할 수 있습니다 .

grep -r "text" /path/to/directory/*

또는 **경로:

grep "text" /path/to/directory/**/*

그러나 **운영자의 가용성은 쉘에 따라 다릅니다. 내가 아는 한 zsh( bash4개만?) 다른 쉘에서는 사용하지 못할 수도 있습니다.

답변2

라는 파일을 사용할 수 있습니다.확인하다. 설명은 다음과 같습니다.

ack는 대규모의 이기종 소스 코드 트리를 사용하는 프로그래머를 위해 설계된 grep과 유사한 도구입니다.

기본적으로 파일에서 패턴을 검색한다는 점에서 grep과 유사하지만 몇 가지 중요한 차이점이 있습니다. 즉, 기본적으로 버전 제어 및 백업 파일(예: CVS, .svn, foo~, #foo#)을 무시하고 반복적으로 검색합니다. Perl로 제작되었기 때문에 크로스 플랫폼입니다. 또한 검색할 디렉터리의 특정 파일 형식을 지정할 수 있으므로 Perl 파일만 검색하려는 경우 다음을 입력할 수 있습니다.

ack --perl pattern

관심이 있으시면 웹사이트에서 "Grep 대신 ack를 사용하는 10가지 이유" 목록을 찾아보실 수 있습니다.홈페이지 확인. 또한,Vim 플러그인.

답변3

비슷한 도구가 있습니다확인하다, 라고 불리는은을 찾는 사람. 개발자들은 이것이 "ack와 비슷하지만 더 좋습니다. 빠릅니다. 엄청나게 빠릅니다. 더 빠른 유일한 방법은 Exuberant Ctags와 같이 사전에 인덱싱된 항목입니다."라고 주장합니다.

답변4

실제 내용이 아닌 파일만 찾아서 나열하려면 -lgrep 옵션을 사용하십시오.

grep -lr Version.cc.in $(pwd)/*

그러면 절대 경로와 함께 모든 파일 목록이 제공됩니다(파일이 현재 작업 디렉터리의 디렉터리/하위 디렉터리에 있다고 가정).

관련 정보