본문 바로가기

리눅스/명령어

grep 명령어의 기본적인 사용방법

728x90

텍스트 파일에서 원하는 문자열이 들어간 행을 찾아 출력하는 명령어 

-> 주로 log파일에서 특정 날짜, 문자로 기록된 error 메시지를 찾는데 유용하게 사용할 수 있다.


1. 옵션

#grep 옵션 [문자열] [파일명]

-b : 문자와 일치하는 줄의 시작점 출력

-c : 문자와 일치하는 줄의 수 출력

-h : 여러 파일에서 문자열을 찾을 때, 파일 이름이 붙는 것을 방지 

-i : 대소문자를 구분하지 않는다.

-n : 줄의 번호와 내용을 같이 출력

-v : 문자가 표함되지 않는 행 출력 

-w : 문자와 한 단어로 일치해야 출력 

-r : 하위 디렉토리에서도 문자를 찾는다.

-A : 특정문자 아래 추가로 여러 행 출력

-B : 특정문자 위 추가로 여러행 출력

 


2. 자주 사용하는 형식

grep "^문자열" : 문자열로 행이 시작되는 경우 출력

grep "문자열&" : 문자열로 행이 끝나는 경우 출력

grep "문자1\|문자2" : 여러 문자열을 한번에 검색

grep -A2 "문자열" : 해당 문자열이 들어갈 행을 포함해 아래 2행 출력

grep -v "문자열" : 해당 문자열을 제외한 행 출력

grep "문자열" * : 현재 위치의 모든파일(*)에서 특정 문자열 출력

 


3. 사용 예

a. grep "문자열" [파일이름]

ex) grep "ubuntu" test

=> 임의 생성한 test 파일에서 grep 명령을 이용해 ubuntu 문자가 들어간 행 출력

 

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

-grep "문자열" [파일이름] [파일이름]

ex) grep "ubuntu" test test1 test2

 

c. 특정 문자를 제외한 행 찾기 

- grep -v "문자열" [파일이름]

ex) grep -v "ubuntu" test

 

d. 두가지 문자열 한번에 찾기 

-grep "문자열1\|문자열2" [파일이름]

ex) grep "ubuntu|\study" test

 

e. 특정 문자열의 위,아래행 추가 출력

★A,B 옵션 뒤의 숫자에 따라 원한는 행을 추가로 출력가능.

-A : 특정문자 아래 추가로 여러 행 출력

-> grep -A2 [문자열] [파일이름]

grep -A2 "study" test   

-B : 특정문자 위 추가로 여러 행 출력

-> grep -B2 [문자열] [파일이름]

grep -B2 "ubuntu" test

 

 

f. 파이프라인을 이용한 명령 중복사용 후 별도로 저장해보기

- cat [파일이름] | grep -v "문자열" >> newTest

ex) cat test | grep -v "study" >> newTest 

반응형