grep -r(또는 -R)은 하위 폴더 내부를 검색하지 않습니다.

grep -r(또는 -R)은 하위 폴더 내부를 검색하지 않습니다.

나는 리눅스를 사용하지 않고 대신 윈도우를 사용하는 지 꽤 시간이 지났습니다. Windows에서 하위 폴더 내의 파일 및 파일에 대한 문자열을 검색하려고 할 때마다(예: cs 파일)

findstr /s /i /n "Thepattern" *.cs

최근 Git을 사용할 때 설치되는 MINGW64에서 grep을 사용할 수 있다는 것을 알게 되었습니다. 그래서 나는 노력했다

grep --color -n -r "Thepattern" *.cs

-r하지만 검색을 넣어도 하위 디렉터리는 포함되지 않습니다.

내가 grep에 뭘 잘못하고 있는 걸까? 그리고 그것은 어떻게되어야합니까?

편집: Anaksunaman이 나에게 정답을 제공했습니다.

grep --color -n -r --include=*.cs "Thepattern"

그리고 몇 가지 다른 옵션 :) 감사합니다!

답변1

Git을 사용할 때 설치되는 MINGW64에서도 grep을 사용할 수 있다는 것을 알게 되었습니다.

나는 당신이 Git Bash를 언급하고 있다고 가정합니다.

내가 grep에 뭘 잘못하고 있는 걸까? 그러면 어떻게 되어야 할까요?

다음을 시도해 보세요.

 grep --color -n -r --include=*.cs "ThePattern"

--include=뒤에 와야합니다 -r. 이렇게 하면 ".cs"로 끝나는 파일로 결과가 제한됩니다. 원하는 경우 디렉토리를 지정할 수도 있습니다. 예:

grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces'

이 경우 ~Windows의 사용자 프로필 폴더를 나타냅니다.

-i또한 "ThePattern"이 문자열 리터럴이라고 가정하면 대소문자를 구분하지 않도록 포함해야 할 수도 있습니다 . 예:

 grep --color -n -i -r --include=*.cs "ThePattern"

그렇지 않으면 "ThePattern"은 "Thepattern"과 동일하지 않으며 결과를 얻지 못할 수도 있습니다.

grep --help추가 옵션에 대한 정보를 얻으려면 언제든지 를 사용할 수 있습니다 .

관련 정보