grep은 「파일에서 패턴이 있는 줄을 찾는」 명령.
리눅스 일상의 가장 자주 쓰는 도구 중 하나.
로그 분석·코드 검색·텍스트 처리에 거의 매번 등장.
기본.
grep "error" log.txt — "error" 포함된 줄 출력.
grep -i "error" — 대소문자 무시.
grep -v "DEBUG" — "DEBUG" 안 포함된 줄.
-n으로 줄 번호.
-c로 매칭 줄 수.
재귀 검색.
grep -r "TODO" src/ — src 폴더와 하위 모두 검색.
-l로 파일명만(매칭 줄 안 보고).
큰 코드베이스에서 「이 키워드 어디 있나」 추적의 표준.
정규식.
grep -E "error|warning" log — 확장 정규식, |로 OR.
grep "^Apr 27" — 줄 시작.
grep "\.txt$" — 줄 끝.
grep -P로 PCRE(펄 호환) — 룩어헤드 등 고급 기능.
모던 대안.
ripgrep(rg).
pip install?
brew install ripgrep.
더 빠르고 .gitignore 자동 인식.
rg "TODO"가 grep -r "TODO" .와 비슷하지만 훨씬 빠름.
새 프로젝트는 거의 ripgrep.
한 줄 요약
grep은 텍스트 검색.
-i 대소무시·-v 반대·-n 줄번호·-r 재귀·-E 정규식.
코드·로그 검색에 매일 사용.
모던 대안 ripgrep(rg)이 더 빠르고 .gitignore 자동 인식.
더 알아볼 것
- 정규식 기본 — egrep·PCRE
- ack·ag — 또 다른 빠른 검색
- grep --color로 색상