리눅스 grep 명령어
리눅스 grep 명령어는 로그 파일과 같은 텍스트 파일과 아스키 파일에서 원하는 문자열을 찾을 때 사용되며, tail과 find 명령어를 파이프(|)와 결합해서 자주 사용하게 되는 명령어입니다.
✅ grep 명령어 기본 사용법
grep [-옵션] [패턴] [파일명]
다른 명령어 | grep [-옵션] [패턴] [파일명]
✅ 기본적인 사용 예
# access_log에서 403 에러 찾기 | 현재 폴더에서 403 에러 찾기 > grep 403 ./* | grep 430 *.log
~]# grep 403 access_log
[01/Jan/2024:05:25:24 +0000] "GET / HTTP/1.1" 403 199 "-" "python-requests/2.31.0"
78.153.140.221 - - [01/Jan/2024:05:35:54 +0000] "GET /.env HTTP/1.1" 403 199 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
95.214.235.169 - - [01/Jan/2024:05:55:12 +0000] "GET /.env HTTP/1.1" 403 199 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
95.214.235.169 - - [01/Jan/2024:05:55:14 +0000] "POST / HTTP/1.1" 403 199 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36"
# 1월 1일의 데이터를 제외(-v)하고 찾기
~]# grep 403 access_log | grep -v 01/Jan
✅ grep 옵션
✅ 다른 명령어와 파이프(|) 조합 활용
다중 명령어인 파이프(|)와 조합해서 사용할 수 있습니다.
tail -f access_log | grep 430
tail -f access_log | grep 430 | grep -v 01/Jan
✅ grep의 3종류
grep는 3가지 종류로 분류됩니다. egrep는 정규 표현식만으로 검색하는 것으로 grep 옵션의 -E 옵션고 동일한 결과를 출력내며, fgrep는 문자열만 검색해서 grep 옵션의 -F옵션과 동일한 결과를 출력 해 줍니다.