grep
은 리눅스와 유닉스 시스템에서 텍스트 검색을 위해 사용되는 강력한 명령어로, 파일 내에서 특정 패턴을 검색하고 필터링하는 데에 유용하게 사용된다. 이 글에서는 grep
명령어의 기본 사용법과 간단한 예제를 알아본다.
기본 사용법
grep
명령어는 다음과 같은 기본적인 구문을 가집니다:
grep [options] pattern [file...]
options
:grep
명령어의 옵션을 지정pattern
: 검색하고자 하는 문자열 또는 정규표현식 패턴file
: 검색을 수행할 파일의 목록으로, 생략하면 표준 입력에서 읽음
grep
명령어 종류
명령어 | 설명 | 정규표현식 가능 여부 |
grep | 다중 패턴 검색 | O |
egrep | 정규 표현식 패턴 검색 | O |
fgrep | 문자열 패턴 검색 | X |
grep
옵션(options)
옵션 | 설명 |
-c | 일치하는 행의 수 출력 |
-i | 대소문자 구분 X |
-v | 일치하지 않는 행만 출력 |
-n | 포함된 행의 번호를 함께 출력 |
-l | 패턴이 포함된 파일의 이름 출력 |
-w | 단어와 일치하는 행만 출력 |
-x | 라인과 일치하는 행만 출력 |
-r | 하위 디렉토리를 포함한 모든 파일에서 검색 |
-m 숫자 | 최대로 표시될 수 있는 결과 제한 |
-E | 패턴을 정규표현식으로 찾기 |
-F | 패턴을 문자열로 찾기 |
grep 사용 예제
1. 단순한 문자열 검색
grep "keyword" filename.txt
위 명령은 filename.txt
파일에서 “keyword”를 검색한다.
2. 대소문자 구분 없이 검색
grep -i "pattern" filename.txt
-i
옵션을 사용하여 대소문자를 구분하지 않고 검색합니다.
3. 정규표현식 사용
grep 'a*' filename.txt
특정 파일에서 ‘a’로 시작하는 모든 단어를 찾는다.
grep [a-c] filename.txt
특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep "^start" filename.txt
특정 파일에서 줄 시작 부분에 “start”가 있는 줄 찾는다.
grep [aA]bc filename.txt
특정 파일에서 abc 또는 Abc로 시작하는 단어 모두 찾는다.
grep '^[ab]' filename.txt
특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep 'ab'[0-9] filename.txt
특정 파일에서 ab로 시작되고 0~9의 숫자로 끝나는 모든 행을 찾는다.
4. 특정 디렉토리에서 모든 파일 검색
grep -r "pattern" /path/to/directory
-r
옵션을 사용하여 특정 디렉토리에서 모든 파일을 재귀적으로 검색한다.
5. 결과에 줄 번호 출력
grep -n "pattern" filename.txt
-n
옵션을 사용하여 검색된 결과에 줄 번호를 함께 출력한다.
6. grep 결과를 txt 파일로 저장
grep -n 'abc' original.txt > result.txt
original.txt
파일에서 grep
한 결과를 result.txt
로 보내 저장한다.
7. 여러 문자열을 모두 포함하는 행 찾기
cat original.txt | grep -E 'aa|bb'
original.txt
파일에서 ‘aa’와 ‘bb’가 포함된 모든 행을 찾는다.
8. 실시간 추가되는 로그에서 찾은 결과 보기
tail -F /var/log/message.log | grep 'fault'
/var/log/message.log
에 추가되는 로그에서 “fault”가 포함하는 행을 출력한다.
참고 사이트
- grep(1) – Linux man page:
grep
명령어에 대한 공식 문서.