1. 기본 검색 구문
grep "검색어" 파일명 # 기본 검색
grep -r "검색어" . # 현재 디렉토리 하위 모든 파일 검색
2. 파일 타입 필터링
# 단일 확장자 검색
grep -r "검색어" --include="*.py" .
# 여러 확장자 검색
grep -r "검색어" --include="*.{js,jsx,ts,tsx}" .
# 특정 디렉토리 제외
grep -r "검색어" --include="*.py" --exclude-dir={node_modules,dist,build} .
3. 컨텍스트 표시
grep -C 3 "검색어" 파일명 # 매칭 기준 위아래 3줄
grep -B 3 "검색어" 파일명 # 매칭 기준 이전 3줄
grep -A 3 "검색어" 파일명 # 매칭 기준 이후 3줄
4. 매칭 옵션
grep -w "test" 파일명 # 정확한 단어 매칭
grep -i "Test" 파일명 # 대소문자 구분 없이
grep -v "제외어" 파일명 # 매칭되지 않는 라인 검색
5. 카운트 및 파일명
grep -c "검색어" 파일명 # 매칭된 라인 수 출력
grep -rc "검색어" . # 파일별 매칭 라인 수
grep -l "검색어" * # 매칭된 파일명만 표시
grep -L "검색어" * # 매칭되지 않는 파일명 표시
6. 다중 패턴 검색
# OR 검색
grep -E "pattern1|pattern2" 파일명
egrep "pattern1|pattern2" 파일명
# AND 검색
grep "pattern1" 파일명 | grep "pattern2"
7. 정규식 검색
# 기본 정규식 패턴
grep -E "^[A-Z]{3}[0-9]{4}$" 파일명 # 대문자3자+숫자4자
# 이메일 주소 검색
grep -E "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}" 파일명
8. 출력 포맷팅
grep --color "검색어" 파일명 # 매칭 부분 색상 강조
grep --color=always "검색어" 파일명 # 항상 색상 강조
grep -n "검색어" 파일명 # 라인 번호 표시
9. 자주 사용되는 조합
# 개발 파일 검색 기본 세트
grep -rin --color "검색어" --include="*.{js,jsx,ts,tsx}" --exclude-dir={node_modules,dist} .
# 컨텍스트 포함 정확한 검색
grep -w -C 2 --color "검색어" 파일명
# 디버깅용 로그 검색
grep -A 5 -B 2 "error" --include="*.log" --color .
주요 옵션 정리:
-r
: 재귀 검색-i
: 대소문자 구분 없음-n
: 줄 번호 표시-w
: 정확한 단어 매칭-c
: 매칭 수 카운트-l
: 파일명만 표시-v
: 매칭되지 않는 라인 검색-E
: 정규식 사용-A
: 매칭 후 라인 표시-B
: 매칭 전 라인 표시-C
: 매칭 전후 라인 표시
댓글 없음:
댓글 쓰기