리눅스에서 정말 많이 사용하는 명령어 중 하나가 바로 grep이다.
이 명령어로 파일에서 특정 문자열이나 패턴 등을 찾고자 할 때 유용하게 사용할 수 있다.
grep 옵션 '검색할 문자열' 파일명
grep 'error' system.log
이렇게 써주면 system.log파일에서 'error'라는 텍스트를 포함한 줄을 찾아서 보여준다.
grep -n 'ERROR' logfile.txt
검색결과와 함께 줄 번호 표시
grep -i 'hostname' config.txt
대소문자 무시.
'HOSTNAME', 'HostName'등 대소문자를 무시하여 모두 검색한다.
grep -v 'DEBUG' logfile.txt
검색 결과 제외.
'DEBUG' 문자열이 포함되지 않은 모든 줄을 출력한다.
grep -C 20 'ERROR' logfile.txt
grep -A 5 'ERROR' logfile.txt
grep -B 10 'ERROR' logfile.txt
-C : 검색된 줄 위 아래 n개 줄 출력
-A : 검색된 줄 아래로 n개 줄 출력
-B : 검색된 줄 위로 n개 줄 출력
grep -r 'TODO' /project
/project 디렉토리 내의 모든 파일에서 'TODO'를 검색한다.
grep -w 'user' config.txt
정확히 일치하는 단어만 검색하는 옵션.
'user'라는 단어만 검색. 'username'등은 포함되지 않는다.
grep --color 'error' logfile.txt
검색된 문자열을 색상으로 강조 표시한다.
grep은 정규표현식을 지원하므로 단순 문자열 뿐만 아니라 복잡한 패턴도 검색할 수 있다.
grep '[0-9]' data.txt
숫자를 포함한 모든 줄 검색
grep -E 'fatal|error|warning' logfile.txt
-E 옵션을 사용하여 'fatal', 'error', 'warning' 중 하나라도 포함된 줄 검색
grep '2024-12-14 12:.*ERROR' logfile.txt
'2024-12-14 12:'로 시작하고 ERROR를 포함한 줄을 검색한다.
grep 'TODO' *.java
현재 디렉토리의 모든 .java파일에서 'TODO'를 검색한다.
grep 'ERROR' file1.log file2.log
두 개 이상의 파일에서 'ERROR'를 검색한다.
grep 'ERROR' logfile.txt > errors.txt
결과를 errors.txt 파일에 저장한다.
grep 명령어는 평소에 많이 사용해왔지만 이렇게 다양한 옵션이 있는지 오늘 글을 작성하려고 찾아보면서 알았다.
이래서 블로그를 써야하나보다..