내가 가장 좋아하는 BASH 명령 중 하나는 다음과 같습니다.
find . -name '*.*' -exec grep 'SearchString' {} /dev/null \;
지정된 SearchString에 대해 현재 디렉토리와 그 아래에있는 모든 파일의 내용을 검색합니다. 개발자로서 이것은 때때로 유용합니다.
그러나 현재 프로젝트와 코드베이스의 구조로 인해 ".svn"이 포함 된 디렉토리 또는 그 아래에있는 파일이나 그에 해당하는 파일을 검색하지 않음으로써이 BASH 명령을 더욱 발전시키고 싶습니다. ".html"로 끝남
그래도 찾기 종류의 MAN 페이지가 혼란 스럽습니다. -prune을 사용해 보았는데 이상한 동작이있었습니다. .html 페이지 만 건너 뛰려고 (시작하기 위해) 시도했습니다.
find . -wholename './*.html' -prune -exec grep 'SearchString' {} /dev/null \;
내가 바랐던 행동을 얻지 못했습니다. 나는 자두의 요점을 놓칠 수 있다고 생각합니다. 너희들이 나를 도울 수 있습니까?
감사
grep -rl 'SearchString'
find
파일 내부를 검색 하는 데 사용하는 팁 입니다.
-name '*.*'
는 모든 파일을 찾지는 못합니다 . .
이름 이있는 파일 만 사용합니다 ( *.*
일반적으로 DOS 방식이지만 유닉스에서는 일반적으로 사용됩니다 *
). 실제로 모두 일치 시키려면 인수를 모두 제거하십시오 find . -exec ...
. 또는 grep을 파일에만 적용하고 디렉토리를 건너 뛰려면을 수행하십시오 find . -type f -exec ...
.
find
bash 명령이 아니라 별도의 프로그램입니다