Ⅰ. ripgrep(rg) 이란?
Rust 언어로 작성된 초고속 텍스트 검색 CLI 도구로, 기존의 grep을 압도하는 속도와 편의성 덕분에 개발자들 사이에서 필수 도구로 자리 잡았습니다 초고속 텍스트 검색 CLI 도구입니다. 기존 grep, ack, ag(The Silver Searcher)보다 빠르고, 개발 환경에 최적화된 검색 기능을 제공합니다.
Ⅱ. ripgrep(rg) 특징
압도적인 속도: 대규모 코드베이스나 로그 파일 검색 시 grep보다 10~100배 이상 빠릅니다. 1GB 파일을 검색할 때 grep이 약 24초 걸린다면, rg는 약 1.8초 만에 끝낼 정도로 빠릅니다.
스마트한 기본값: 별도의 옵션 없이도 재귀적 검색을 수행하며, .gitignore에 등록된 파일이나 숨김 파일, 바이너리 파일을 자동으로 건너뛰어 검색 결과의 노이즈를 줄여줍니다.
유니코드 지원: 속도를 희생하지 않으면서도 다양한 유니코드 문자를 정확하게 검색할 수 있습니다.
ⅰ. 매우 빠른 속도
- 대규모 코드베이스나 로그 파일 검색 시 grep보다 10~100배 이상 빠른 속도
- 멀티스레드 기본 지원
- 메모리 매핑(mmap) 활용
ⅱ. 스마트한 기본값
- 별도의 옵션 없이도 재귀적 검색을 수행
- .gitignore에 등록된 파일이나 숨김 파일, 바이너리 파일을 자동으로 건너뛰어 검색 결과의 노이즈를 줄임
ⅲ. 유니코드 지원
- 속도를 희생하지 않으면서도 다양한 유니코드 문자를 정확하게 검
Ⅲ. ripgrep(rg) 정규표현식
| 상황 | 명령어 | 설명 |
| 기본 검색 | rg "[단어]" Ex) rg "hello" |
현재 디렉토리 및 하위의 모든 텍스트 검색 |
| 특정 확장자만 검색 | rg "[단어]" -g "*.jsp" Ex) rg "error" -g "*.log" |
.jsp 파일 내에서만 검색 |
| 대소문자 무시한 검색 | rg -i "[단어] Ex) rg -i "warning" |
대소문자 구분 없이 검색 |
| 파일명만 출력 | rg -l "[단어]" Ex ) rg -l "TODO" |
일치한 내용 대신 파일 이름만 나열 |
| 매칭된 갯수만 출력 | rg -c "[단어]" Ex) rg -c "ERROR" |
일치한 내용 갯수만 출력 |
| 숨김파일 포함 | rg --hidden "[단어]" Ex) rg --hidden "ERROR" |
.env 같은 숨김 파일까지 모두 검색 |
| 교체하기 | rg "A" -r "B" Ex) rg "INFO" -r "ERROR" |
검색 결과 A를 B로 바꿔서 출력 |
Ⅳ. ripgrep(rg) 설치 방법
| ## Redhat dnf install epel-release -y dnf install ripgrep -y ## Ubuntu/Debian apt install ripgrep ## Mac OS brew install ripgrㅔep ## Windows choco install ripgrep 또는 scoop install ripgrep |
Ⅴ. ripgrep(rg) vs grep 비교
| 항목 | ripgrep | grep |
| 재귀 검색 | 기본 지원 | -r 필요 |
| 속도 | 매우 빠름 | 보통 |
| .gitignore 인식 | O | X |
| 멀티스레드 | O | X |
| 바이너리 자동제외 | O | X |
| PCRE 지원 | -P | 옵션 필요 |
※ PCRE 란?
Perl 언어와 호환되는 정규표현식(Regex) 엔진입니다. 일반 정규표현식보다 더 강력한 문법과 고급 기능을 지원합니다.
Ⅵ. ripgrep(rg) 쓰이는 곳
ⅰ. 대규모 코드베이스
ⅱ. 로그 서버 검색
ⅲ. 보안 점검
ⅳ. DevOps 운영
ⅴ. CI/CD 파이프라인 자동화
'시스템(Linux)' 카테고리의 다른 글
| 리눅스 루트킷(Linux Rootkit) 에 대해 알아보겠습니다. (0) | 2025.12.19 |
|---|---|
| blkid 명령어에 대해 알아보겠습니다. (0) | 2025.12.18 |
| chattr (change attribute) & lsattr (list attribute)명령어에 대해 알아보겠습니다. (0) | 2025.12.15 |
| 리눅스에서 사용되는 SWAP 메모리 추가하는 방법에 대해 알아보겠습니다. (0) | 2025.11.24 |
| Syslog에 대해 알아보겠습니다. (0) | 2025.10.17 |