본문 바로가기

UNIX / LINUX

[LINUX/UNIX] grep 명령어

* grep : 특수한 문자패턴으로 파일을 찾는다.

grep (플래그) (찾을 문자패턴) (파일명)

 

$grep 'this' hello.txt  --> 라고 입력하면

  this is first line

  this is second line --> 이렇게 파일 내 this가 포함된 라인을 출력한다.

 

* 플래그 설명

-i    대소문자 무시

-v    거꾸로, 없는 라인을 출력한다.

-l    내용은 빼고 파일의 리스트만 보여준다. (파일 이름에 * 놓고 사용할 때 유용하겠구만)

-n    라인 번호를 같이 출력한다.

 

* grep 사용 시 유용할듯한 정규표현식

  • [abc]  :  a, b, c 중에서 한 문자만 매치

ex) grep '[tT]his' hello.txt  -->  this 또는 This 가 있는 라인

  • * 끝까지 쭉~ (시작과 끝을 나타낼 때 유용)

  • [0-9]  :  0 ~ 9 중에서 한 문자만 매치

(대신 순서는 지켜야 한다. [a-z]는 되지만 [z-a]는 안된다)

ex) [a-np-z]*  :  a에서 n까지 또는 p에서 z까지의 문자로 시작되는 라인 (* 사용됨)

  • [!a]  :  a 가 아닌 것

ex) [!a-z]  :  소문자가 아닌 것

*[!k]  :  알파벳 k로 끝나지 않는 것

  • :  글자 한개

ex) grep 'h...o' hello.txt

파일에서 h로 시작해서 o로 끝나는 5글자짜리 단어가 들어간 라인을 찾는다.