grep (Global Regular Expression Print)
grep은 파일 내부나 입력값에서 특정 패턴(문자열 또는 정규표현식)을 검색하여 해당 라인을 출력하는 강력한 명령어입니다. 파이프(|)와 함께 사용하여 다른 명령어의 결과물을 필터링할 때 가장 많이 사용됩니다.
[Image of Linux grep command visual explanation showing input text and filtered output]
1. 기본 사용법
grep [옵션] "패턴" [파일명]
2. 주요 옵션
| 옵션 | 이름 | 설명 |
|---|---|---|
-i |
ignore-case | 대소문자 무시. 대문자와 소문자를 구별하지 않고 검색합니다. |
-v |
invert-match | 반전 검색. 패턴을 포함하지 않는 라인만 보여줍니다. |
-r |
recursive | 디렉터리 검색. 현재 폴더 및 하위 폴더의 모든 파일을 뒤져서 찾습니다. |
-n |
line-number | 줄 번호 표시. 검색 결과가 몇 번째 줄에 있는지 함께 출력합니다. |
-c |
count | 개수 세기. 패턴이 일치하는 라인의 총 개수를 출력합니다. |
-E |
extended-regexp | 확장 정규식. | 나 + 같은 복잡한 정규표현식을 사용할 때 씁니다. |
3. 실무 활용 예시
① 파일 내에서 단어 찾기
grep "error" server.log
② 파이프(|)를 이용한 실행 중인 프로세스 필터링
ps aux | grep python
# ps aux 결과 중 'python'이 들어간 줄만 출력
③ 특정 확장자 파일들에서 단어 검색
grep -r "KimComputer" ./projects/*.txt
④ 제외하고 보기 (반전 검색)
로그에서 'DEBUG' 메시지만 빼고 보고 싶을 때 유용합니다.
cat app.log | grep -v "DEBUG"
4. [팁] 정규표현식 기초
^word: 줄의 시작이 'word'인 경우word$: 줄의 끝이 'word'인 경우.: 아무 문자 한 글자*: 앞의 문자가 0번 이상 반복