Linux Basic

grep 명령어

별다방체리콕 2024. 1. 23. 15:12

 

 

 

 

 

 

리눅스 grep 명령어는 로그파일이나, 텍스트 파일에서 특정 문자열을 찾을 때 사용하며 tail 명령어나 find 명령어등 다양한 명령어들과 함께 사용하여 로그 파일에서 실시간으로 특정 문자열을 찾는다던지, 혹은 디렉터리 내에서 특정 이름을 포함하는 파일을 찾을 때 등등 다양하게 응용 가능

 

 

 

 

 

 

 

 

 

 

 

grep

리눅스에서 grep 명령어는 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어

tail 이나 ls 등 다양한 명령어와 조합하여 응용되는 경우가 많아서 이 grep 명령어는 리눅스에서 능숙하게 사용할 줄 알아야 함

 

 

 

 

 

 

 

 

 

리눅스 grep 사용법

grep [옵션] [패턴] [파일명]

 

 

 

 

 

문자열로 찾기

# 특정 파일에서 'error' 문자열 찾기
grep 'error' 파일명

# 여러 개의 파일에서 'error' 문자열 찾기
grep 'error' 파일명1 파일명2

# 현재 디렉토리내에 있는 모든 파일에서 'error' 문자열 찾기
grep 'error' *

# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기
grep 'error' *.log

 

grep 명령어를 사용하시면 특정 파일에서 내가 원하는 문자열이 있는 라인을 찾을 수 있음

파일은 여러 개 지정도 가능함

 

 

 

 

 

정규표현식으로 찾기

# 특정 파일에서 문자열이 포함된 행 찾기
grep '^[ab]' 파일명

# 특정 파일에서 a 로 시작하는 모든 단어 찾기
grep 'a*' 파일명

# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어 찾기
grep 'a...z' 파일명

# 특정 파일에서 a, b, c로 시작하는 단어 모두 찾기
grep [a-c] 파일명

# 특정 파일에서 apple 또는 Apple로 시작하는 단어 모두 찾기
grep [aA]pple 파일명

# 특정 파일에서 a나 b로 시작되는 모든 행 찾기
grep '^[ab]' 파일명

# 특정 파일에서 apple 로 시작되고 0나 9의 숫자로 끝나고 시작되는 모든 행 찾기
grep 'apple'[0-9] 파일명

 

리눅스에서 grep은 정규표현식으로 특정 문자열을 찾을 수 있는 기능도 제공

 

 

 

 

 

 

 

 

 

 

자주 사용하는 옵션

  • -c : 일치하는 행의 수 출력
  • -i : 대소문자 구별 X
  • -v : 일치하지 않는 행 출력
  • -n : 포함된 행의 번호 함께 출력
  • -l : 패턴이 포함된 파일의 이름 출력
  • -w : 단어와 일치하는 행만 출력
  • -x : 라인과 일치하는 행만 출력
  • -r : 하위 디렉토리를 포함한 모든 파일에서 검색
  • -m 숫자 : 최대로 표시될 수 있는 결과 제한
  • -E : 찾을 패턴을 정규 표현식으로 찾음
  • -F : 찾을 패턴을 문자열로 찾음

 

 

 

 

 

 

 

 

grep의 종류

명령어 설명 정규표현식 사용
grep 다중 패턴 검색 O
egrep 정규 표현식 패턴 검색 O
fgrep 문자열 패턴 검색 X

 

 

 

 

 

 

 

 

 

 

실시간 로그 보기 (tail + grep)

tail -f mylog.log | grep 192.168.56.12

 

grep 은 다른 명령어와 조합해서 사용하는 경우도 많음

대부분 개발자들이 실시간 로그 체크를 할 때는 tail 과 grep 명령어 조합으로 로그파일에서 자신이 원하는 키워드만 추출함

 

 

 

 

 

 

 

 

 

 

특정 파일에서 여러 개 문자열 찾기

cat mylog.txt | grep 'Apple' | grep 'Banana'

 

| 파이프를 사용하면 grep 명령어를 여러 개 사용하여 특정 파일에서 여러 개의 문자열을 찾을 수 있음

 

 

 

 

 

 

 

 

 

최대 검색 결과 제한하기

grep -m 100 'Apple' mylog.txt

 

grep 한 결과가 너무 많으면 한도 끝도 업이 스크롤이 내려가는 경우가 생기기 때문에
grep 한 결과를 100개까지만 출력하고 싶다면 -m 옵션을 사용함

 

 

 

 

 

 

 

 

 

 

grep 한 결과 값 txt 파일로 저장하기

grep -n 'Apple' mylog.txt > result.txt

 

grep 한 결과가 길면 터미널에서 확인이 어렵기 대문에 txt 파일로 저장하여 확인함

'Linux Basic' 카테고리의 다른 글

sed 명령어  (2) 2024.01.25
set 명령어  (0) 2024.01.24
find 명령어  (0) 2024.01.17
tar 명령어  (0) 2024.01.17
AWK  (0) 2024.01.10