리눅스 문자열 검색 Grep 명령어 사용법

리눅스 문자열 검색 grep 명령어를 정리한다.

기본 문법

grep [-옵션] 패턴 파일명

옵션

-c 패턴이 일치하는 행의 수
-i 대소문자 구분 안함
-v 패턴과 일치하지 않는 행을 출력
-n 행의 번호를 함께 출력
-r 서브 디렉토리까지 검색
-l 패턴이 포함된 파일 이름을 출력
-E 패턴을 정규 표현식으로 확장

**사용법

grep -n '리눅스' grep.log
grep -i 'linux' *.log
grep -l '리눅스' grep.log error.log
grep -v '리눅스' *
grep -r '리눅스' *

정규 표현식 사용

grep '^linux' [파일명]
^는 파일의 시작을 나타낸다. 파일에서 linux로 시작하는 행을 찾는다.
grep 'linux$' [파일명]
$는 파일의 끝을 나타낸다. 파일에서 linux로 끝나는 행을 찾는다.
grep 'tomca*' [파일명]
파일에서 tomca로 시작하는 모든 단어를 찾는다.
grep 'l...x' [파일명]
파일에서 l로 시작하고 x로 끝나는 5자리 단어를 찾는다.
grep '[a-d]' [파일명]
파일에서 a,b,c,d로 시작하는 모든 단어를 찾는다.
grep '[lL]inux' [파일명]
파일에서 linux, Linux로 시작하는 모든 단어를 찾는다.
grep '^[tn]' [파일명]
파일에서 t나 n으로 시작되는 모든 행을 찾는다.
grep -E 'tomcat|linux|nginx' [파일명]
파일에서 tomcat 또는 linux 또는 nginx가 있는 모든 행을 찾는다. -E 옵션을 적용하지 않으면, 
파이프(|) 앞에 백슬래쉬(\)를 붙여야 한다.

고급 사용법

grep [-옵션] [패턴] -B 3 -A 3 [파일명]
패턴에 일치하는 행의 Before 3행과 After 3행을 함께 출력한다.
grep [-옵션] [패턴] [파일명] > out.txt
패턴의 일치하는 행을 out.txt 라는 파일로 저장한다.