프로젝트/IT 이야기

[Tip] rg(ripgrep) 설치·사용 가이드 (공용 / Windows / PowerShell)

dokwang82 2026. 1. 18. 11:45

rg(ripgrep) 설치·사용 가이드 (공용 / Windows / PowerShell)

0) rg란?

  • rg(ripgrep)는 프로젝트 내 텍스트/소스코드에서 문자열을 매우 빠르게 검색하는 CLI 도구다.
  • IDE의 Find in Files와 동일 목적이지만, 터미널에서 재현 가능한 커맨드로 남길 수 있어 리팩토링/영향범위 파악에 특히 유용하다.

1) 설치 (winget 권장)

1.1 패키지 검색 (ID 확인)

PowerShell에서:
winget search ripgrep

예시로 보일 수 있는 항목:

  • RipGrep MSVC BurntSushi.ripgrep.MSVC
  • RipGrep GNU BurntSushi.ripgrep.GNU

1.2 설치 (MSVC 권장)

PowerShell에서:
winget install -e --id BurntSushi.ripgrep.MSVC

설치 로그에 아래 문구가 나오면 정상:

  • "rg" 명령줄 별칭이 추가되었습니다.
  • 경로 환경 변수 수정됨; 셸을 다시 시작하여 새 값을 사용합니다.

2) 설치 후 확인 (버전 체크)

2.1 새 PowerShell 창을 열어서 확인 (권장)

PowerShell에서:
rg --version

정상 예:

  • ripgrep 15.x.x ...

2.2 (옵션) 재시작 없이 PATH 반영하기

설치 직후 같은 세션에서 rg가 인식되지 않으면 아래로 PATH를 재로드할 수 있다.

PowerShell에서:
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

 

rg --version


3) 기본 사용법 (실무에서 자주 쓰는 패턴)

3.1 특정 폴더 “안에서만” 검색 (핵심 예시)

  • lib 폴더 안에서만 검색:
    rg -n "search text" lib
  • src 폴더 안에서만 검색:
    rg -n "search text" src
  • packages/hushdsp_flutter 안에서만 검색(예시):
    rg -n "search text" .\packages\hushdsp_flutter
  • 여러 폴더를 동시에 제한해서 검색:
    rg -n "search text" lib test

3.2 프로젝트 전체에서 검색 (현재 폴더 기준)

rg -n "search text" .

3.3 라인 번호 포함

rg -n "search text" .

3.4 여러 패턴을 OR로 한 번에 검색 (정규식)

rg -n "patternA|patternB|patternC" lib

3.5 “작업 태그” 모아보기 (예: TODO/FIXME)

rg -n "TODO|FIXME|HACK" lib

3.6 특정 파일(들)만 대상으로 제한

rg -n "search text" path\to\file.dart

4) 실사용 예시 (어떤 프로젝트든 그대로 복붙 가능)

4.1 “특정 API/심볼이 실제로 쓰이는지” 확인

(예: 어떤 래퍼/유틸이 코드에서 실제로 호출되는지)

rg -n "MyWrapperClass|myWrapperFunction|as myalias|myalias\." lib

해석:

  • 결과 0건이면: 대체로 미사용(또는 이름이 다름 / 생성 코드만 있고 호출이 없음)
  • import만 있고 호출이 없으면: “유령 import” 가능 → 정리 후보

4.2 “리팩토링 영향범위” 확인 (클래스/함수/파일명)

rg -n "OldClassName|oldFunctionName|old_file_name" lib

4.3 “플랫폼 분기/조건문” 모아보기 (예시)

rg -n "kIsWeb|Platform\.isAndroid|Platform\.isIOS|defaultTargetPlatform" lib

5) 트러블슈팅

5.1 rg : 'rg' 용어가 cmdlet... 에러가 뜰 때

원인:

  • 설치는 되었지만 현재 PowerShell 세션이 PATH 변경을 아직 반영하지 못한 경우가 많다.

해결(권장 순서):

1) PowerShell 창을 닫고 새로 열기 → rg --version
2) 재시작이 어려우면 PATH 재로드:

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

5.2 winget 설치가 안 될 때 (ID 문제)

  • 정확한 ID가 아닌 값으로 설치를 시도하면 실패할 수 있다.
  • 반드시 아래처럼 검색으로 ID를 확인하고 설치한다.
  • winget search ripgrep
    winget install -e --id BurntSushi.ripgrep.MSVC

6) 운영 팁 (권장)

  • 리팩토링 전에 rg로 “등장 위치(usage)”를 먼저 확보하고, 변경 후 다시 rg로 “남은 참조”가 없는지 확인한다.
  • 커맨드는 작업 로그/문서에 그대로 붙여서 재현 가능한 형태로 남긴다.