터미널에서는 grep과 rg를 가장 자주 만나
grep은 오래된 표준 검색 도구고, ripgrep의 rg는 코드 저장소를 재귀 검색하기 편한 현대적인 도구야. rg는 Rust regex 엔진을 기본으로 사용하고 .gitignore도 자동으로 존중해.
grep은 선택한 모드에 따라 문법이 달라져
- 기본 BRE:
?,+, 중괄호, 괄호,|를 특별한 문법으로 쓰려면 이스케이프가 필요해. - ERE:
grep -E를 사용하면 괄호와 선택 같은 문법을 이스케이프 없이 쓸 수 있어. - PCRE: 지원되는 빌드에서
grep -P를 사용하면 전후방 탐색, 역참조, 이름 붙은 그룹 같은 기능을 쓸 수 있어.
이식하기 쉬운 일반 검색은 grep -E로 시작하고, PCRE 기능이 꼭 필요할 때만 -P의 지원 여부를 확인해.
rg의 기본 엔진은 기능을 제한해 시간을 예측하기 쉽게 해
기본 Rust regex 엔진은 전후방 탐색과 역참조를 지원하지 않는 대신 입력 길이에 대해 선형 시간 동작을 보장해. 그런 기능이 필요한 검색만 --pcre2로 별도 엔진을 선택할 수 있어.
rg pattern은 현재 디렉터리 아래를 재귀 검색하고-i는 대소문자를 무시하고,-n은 줄 번호를 보여 주고,-l은 파일 이름만 보여 줘.-A 3은 매칭 뒤 세 줄을 함께 보여 주고--pcre2는 PCRE2 문법을 사용하고-r 'replacement'는$1같은 캡처를 이용한 치환 결과를 출력해.