후레임의 프로그래밍
Linux에서 특정 텍스트가 포함 된 모든 파일을 찾으려면 어떻게합니까? 본문
질문
특정 텍스트 문자열을 포함하는 모든 파일에 대해 전체 Linux 시스템을 검색하는 방법을 찾으려고 합니다. 명확히 하기 위해 파일 이름이 아닌 파일 내에서 텍스트를 찾고 있습니다.
이 작업을 수행하는 방법을 찾고 있을 때 이 솔루션을 발견했습니다.
find / -type f -exec grep -H 'text-to-find-here' {} \;
그러나 작동하지 않습니다. 시스템의 모든 파일을 표시하는 것 같습니다.
올바른 방법에 가깝습니까? 그렇지 않다면 어떻게 해야합니까? 파일에서 텍스트 문자열을 찾는 이 기능은 내가 하고 있는 일부 프로그래밍 프로젝트에 매우 유용할 것입니다.
답변
다음을 수행하십시오.
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
또는-R
은 재귀적입니다.-n
은 줄 번호이고-w
는 전체 단어 일치를 나타냅니다.-l
(소문자 L)을 추가하여 일치하는 파일의 파일 이름을 제공 할 수 있습니다.
이들과 함께 -exclude
, -include
, -exclude-dir
플래그를 사용하여 효율적인 검색을 할 수 있습니다. < / p>
-
확장자가 .c 또는 .h 인 파일 만 검색합니다.
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
-
.o 확장자로 끝나는 모든 파일 검색은 제외됩니다.
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
-
디렉토리의 경우
-exclude-dir
매개 변수를 사용하여 하나 이상의 디렉토리를 제외 할 수 있습니다. 예를 들어, 디렉토리 dir1 /, dir2 / 및 * .dst /와 일치하는 모든 디렉토리를 제외합니다.grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
당신과 거의 같은 목적을 달성하기 위해 저에게 매우 효과적입니다.
더 많은 옵션을 보려면 man grep
을 확인하세요.
'스택오버플로우(Stack Overflow)' 카테고리의 다른 글
양식 기반 웹 사이트 인증에 대한 확실한 가이드 (0) | 2020.11.10 |
---|---|
REST의 PUT vs POST (0) | 2020.10.26 |
JavaScript 비교에서 ==와 ===의 차이는 무엇일까요? (0) | 2020.10.26 |
비동기 호출에서 응답을 어떻게 반환합니까? (0) | 2020.10.26 |
추적되었지만 현재 .gitignore에 있는 파일을 Git이 "잊게"만드는 방법은 무엇입니까? (0) | 2020.10.26 |