728x90
반응형
질문 : 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)을 추가하여 일치하는 파일의 파일 이름을 제공 할 수 있습니다.-e
는 검색 중에 사용되는 패턴입니다.
이와 함께 --exclude
, --include
, --exclude-dir
플래그를 사용하여 효율적인 검색을 수행 할 수 있습니다.
- 확장자가 .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
을 확인하십시오.
출처 : https://stackoverflow.com/questions/16956810/how-do-i-find-all-files-containing-specific-text-on-linux
728x90
반응형
'개발관련 > Linux' 카테고리의 다른 글
스크립트 자체 내에서 Bash 스크립트의 소스 디렉토리를 얻는 방법 (0) | 2021.06.26 |
---|---|
Linux에서 iPhone 앱 개발을 할 수 있을까? (0) | 2021.06.24 |
OS X : Linux의 wget과 동일 (0) | 2021.06.18 |
파일이있는 폴더를 Unix / Linux의 다른 폴더로 복사하는 방법 (0) | 2021.06.18 |
Linux에서 pthread_create에 대한 정의되지 않은 참조 (0) | 2021.06.17 |