Linux grep 사용법

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”가 포함하는 행을 출력한다.

참고 사이트

답글 남기기