본문 바로가기

Linux/Shell

[Linux] grep 명령어 사용법

1. 사용법

 

리눅스 쉘(bash)에서 다음과 같이 입력하면 된다.

> grep [<옵션>] <패턴> [<파일>]

옵션, 파일에 대괄호가 쳐진 건 여러가지 옵션/파일을 적용할 수 있다는 뜻이다.

 

옵션은 -i, -E 같은 걸 말하고

패턴은 정규표현식이며

파일은 현재 bash shell이 사용되고 있는 폴더 내의 파일 이름을 말한다.

 

2. 옵션

 

주로 사용하는 옵션은 다음과 같다.

 

-e : 패턴 전달

-f : 파일 내용을 패턴으로 사용

-d : 디렉토리 처리방식 (read, recurse, skip)

-D : 장치 파일 처리방식(read, skip)

-r : 하위 폴더 검색

-R : 모든 하위 폴더 검색

-I : 바이너리 파일은 검사 x

 

-i : 대소문자 무시

-v : 조건 불일치 라인 선택

-w : 단어단위 매칭

-x : 라인단위 매칭

-z : \n (개행)이 아닌 \0 (NULL)으로 구분

 

-m : 최대갯수 제한

-n : 라인번호 같이 출력

-c : 파일당 패턴일치 라인갯수 출력

-H : 파일 이름 같이 출력

-h : 파일 이름 무시

-l : 패턴이 존재하는 파일이름만 표시

-o : 매치되는 문자열만 표시

-q : 결과 출력 x (pipeline에만 쓰기)

 

-E : 확장 정규 표현식으로 해석

-F : 일반 문자열로 해석

-G : 기본 정규 표현식으로 해석

-P : Perl 정규 표현식으로 해석

 

 

이하 grep --help 의 결과를 참고.

 

> grep "ABC" example.txt // example.txt에서 ABC문자열 검색
> grep -i "ABC" example.txt // 대소문자 구분x
> grep -w "ABC" example.txt // 단어단위로 검색
> grep -n "ABC" example.txt // 라인번호 같이 출력
> grep -H "ABC" example.txt // 파일이름 같이 출력
> grep -m 10 "ABC" example.txt // 10개까지만 검색
> grep -r "ABC" * // 현재폴더+하위폴더 전부 다 검색

> grep "[0-9]" example.txt // 숫자만 찾기
> grep "^ABC" example.txt // 문자열 시작이 ABC인 것만 찾기
> grep "$ABC" example.txt // 문자열 마지막이 ABC인 것만 찾기
> grep "A.*C" example.txt // A로 시작해서 C로 끝나는 문자열만 찾기

> grep "ABC" example.* // 파일형식에 관계없이 찾기
> grep "ABC" *.txt // txt 확장자에서만 찾기

> grep -Hnwm 10 "ABC" * // 현재폴더 모든 파일에서 ABC와 일치하는 것을 찾아서 파일이름, 라인 번호와 함께 10개까지만 출력 

 

3. 활용법

(1) 파일 찾기 (ls 와 pipelining)

데이터셋을 모아놓은 폴더에서 ls를 치면 끔찍한 일이 벌어진다.

 

파이프라인을 통해 ls의 결과물을 grep으로 넘겨 Falling 라베렝 해당하는 데이터셋의 이름만 출력했다.

 

(2) 메모장에서 링크 찾기

이것저것 링크랑 코멘트를 달아둔 텍스트 파일을 바탕화면에 모아넣고,

grep을 이용해 간단하게 링크와 위치를 찾아보았다.

 

기타 유용하게 사용할 수 있음.

 

'Linux > Shell' 카테고리의 다른 글

[Linux] 프로세스 관련 명령어 : top, ps, kill  (0) 2020.06.05