grep 명령어
리눅스에서 grep 명령어는 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어입니다. 특히 tail이나 ls 등 다양한 명령어와 조합하여 응용되는 경우가 많아서 이 grep명령어는 리눅스에서 능숙하게 사용할 줄 알아야 하는 기본 명령어입니다.
리눅스 grep 사용법
grep [옵션][패턴][파일명]
문자열로 찾기
# 특정 파일에서 'error' 문자열 찾기
grep 'error' 파일명
# 여러개의 파일에서 'error' 문자열 찾기
grep 'error' 파일명1 파일명2
# 현재 디렉토리내에 있는 모든 파일에서 'error' 문자열 찾기
grep 'error' *
# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기
grep 'error' *.log
grep명령어를 사용하시면 특정 파일에서 내가 원하는 문자열이 있는 라인을 찾을 수 있습니다. 파일은 여러개 지정도 가능합니다. 위와 같이 사용한다면 'error'라는 문자열을 mylog.log라는 파일에서 찾을 수 있겠습니다.
자주 사용하는 옵션
- -c : 일치하는 행의 수를 출력한다.
- -i : 대소문자를 구별하지 않는다.
- -v : 일치하지 않는 행만 출력한다.
- -n : 포함된 행의 번호를 함께 출력한다.
- -l : 패턴이 포함된 파일의 이름을 출력한다.
- -w : 단어와 일치하는 행만 출력한다.
- -x : 라인과 일치하는 행만 출력한다.
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색한다.
- -m 숫자 : 최대로 표시될 수 있는 결과를 제한한다.
- -E : 찾을 패턴을 정규 표현식으로 찾는다.
- -F : 찾을 패턴을 문자열로 찾는다.
실시간 로그 보기 (tail + grep)
tail -f mylog.log | grep 192.168.15.86
grep은 다른 명령어와 조합해서 사용하는 경우도 많습니다. 대부분 개발자들이 실시간 로그 체크를 할 때는 tail과 grep 명령어 조합으로 로그파일에서 자신이 원하는 키워드만 추출하고는 합니다. 위의 명령어대로 사용하시면 mylog파일을 실시간으로 액세스하고 IP주소가 192.168.49.16인 행만 추출할 수 있겠습니다.
특정 파일에서 여러개 문자열 찾기
cat mylog.txt | grep 'Apple' | grep 'Banana'
| 파이프를 사용하면 grep명령어를 여러 개 사용하여 특정 파일에서 여러 개의 문자열을 찾을 수 있을 수도 있습니다. 위의 명령어대로 입력한다면 mylog.txt 파일에서 Apple과 Banana이 있는 문자열들을 찾을 수 있겠습니다.
grep 한 결과 값 txt 파일로 저장하기
grep -n 'Apple' mylog.txt > result.txt
grep한 결과가 길면 터미널에서 확인이 어렵기 때문에 txt파일로 저장하여 확인하고는 합니다. 위의 명령어대로 입력한다면 mylog.txt 파일에서 Apple이 있는 문자열들을 result.txt 파일에 저장하실 수 있습니다.
vi 명령 노트
가끔 까먹는 vi 명령들을 적어 놓습니다.
vi 페이지 이동 명령
ctrl+f - 다음 페이지로
ctrl+b - 이전 페이지로
gg - 파일 첫 문장으로
G - 파일 끝으로
출처: https://coding-factory.tistory.com/802
출처: https://ingorae.tistory.com/399 [잉고래의 잇다이어리:티스토리]
'Linux' 카테고리의 다른 글
[Linux] 개발자를 위한 네트워크 지식과 명령어 (0) | 2023.03.09 |
---|---|
[Linux] 프로세스 확인 & 죽이기 Kill 명령어 (0) | 2022.10.12 |
리눅스 파일 찾기, 파일속 문자열 찾기 (0) | 2020.06.20 |
리눅스 cron, crontab 설정 (0) | 2020.06.20 |
쉘 조건문 / 쉘 if ... else (0) | 2020.06.20 |
댓글