일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 2
- 버전관리
- 클라우드컴퓨팅
- 사이버보안
- 자바스크립트
- 웹개발
- 빅데이터
- 인공지능
- 데이터베이스
- 프로그래밍언어
- 데이터분석
- 데이터과학
- 컴퓨터과학
- 보안
- 데이터구조
- 프로그래밍
- 머신러닝
- 소프트웨어공학
- 코딩
- 알고리즘
- 컴퓨터비전
- 네트워크보안
- 파이썬
- 자료구조
- 딥러닝
- 컴퓨터공학
- I'm Sorry
- 소프트웨어
- 네트워크
- Yes
- Today
- Total
스택큐힙리스트
리눅스에서 특정 텍스트 (문자열)가 포함 된 모든 파일을 찾는 방법은 무엇인가요? 본문
이 게시물을 개선하고 싶나요? 인용과 함께 답변을 자세하게 제공하여 왜 답변이 올바른지 설명하십시오. 충분한 세부 정보가 없는 답변은 편집되거나 삭제될 수 있습니다.
파일 내용 중 특정 문자열을 포함하는 모든 파일을 어떻게 찾을 수 있나요?
다음은 작동하지 않습니다. 시스템의 모든 파일을 표시하는 것으로 보입니다.
find / -type f -exec grep -H 'text-to-find-here' {} \;
답변 1
다음을 수행하십시오:
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/search/' -e pattern
이것은 나에게 아주 잘 작동되며 거의 당신과 같은 목적을 달성할 수 있습니다.
더 많은 옵션은 man grep을(를) 참조하십시오.
답변 2
여러분의 리눅스에서는 특정 텍스트(문자열)를 포함하는 모든 파일을 검색하는 방법을 알고 계십니까? 이 기능은 어떤 종류의 파일에서든 사용할 수 있고, 특히 코드베이스 내에서 오류와 버그를 찾는 데 유용합니다. 여기에서는 리눅스에서 파일 검색 시 사용할 수 있는 몇 가지 유용한 명령어와 검색 기술을 살펴보겠습니다.
grep을 사용한 검색
grep은 리눅스 파일 검색 시 가장 많이 사용되는 도구 중 하나입니다. Global Regular Expression Print의 약어로, 텍스트 파일에서 문자열을 검색하고 해당 줄을 출력하는 데 사용됩니다. 다음은 grep을 사용하여 파일 내에서 텍스트를 검색하는 예입니다.
$ grep search text path/to/file
이 명령어는 path/to/file 안에 있는 search text라는 문자열을 검색하고 해당 줄을 출력합니다. 이 명령어를 사용하면 해당 파일의 모든 열이 검색됩니다.
파일 내의 모든 디렉토리에서 grep 사용하기
특정 디렉토리에서 여러 파일의 내용을 검색하려면 하위 디렉토리의 모든 파일을 검색하도록 grep에 알려줘야 합니다. 하위 디렉토리를 검색에 포함되게 하는 경우 -r 플래그를 사용하는 것이 좋습니다.
$ grep -r search text path/to/dir
위 명령어는 path/to/dir 안에 있는 모든 파일에서 search text를 찾고 출력합니다.
파일 이름에서 grep 사용하기
혹은 파일 이름에서도 검색을 할 수 있습니다. 파일 이름에서 문자열을 검색하려면 -r 대신 -l 플래그를 사용하면 됩니다.
$ grep -l search text path/to/dir/*
위 명령어는 path/to/dir 안에 있는 모든 파일에서 search text를 찾아 해당 파일 이름을 반환합니다.
ACK AG
리눅스에서 검색 기능을 지원하는 다른 도구(Ack, Silver Searcher, RipGrep 등)도 있습니다. 이러한 도구는 grep보다 더 빠르게 검색을 실행할 수 있습니다.
마무리
리눅스에서는 여러 가지 방법을 사용하여 파일 내에서 문자열을 검색할 수 있습니다. grep은 단순하면서도 매우 유용합니다. 하위 디렉토리를 검색하거나 파일 이름에서 검색하는 등의 명령어를 사용하면 검색 기능을 더욱 확장할 수 있습니다. 따라서 파일 내에서 특정 텍스트를 검색해야 하는 경우 다양한 옵션을 시도해 보세요!