KWMBLOG

패턴을 검사하는 명령어 - grep 본문

리눅스/명령어

패턴을 검사하는 명령어 - grep

KWMBLOG 2018. 11. 30. 16:14

어제 친구가 30만줄에서

자기가 찾고싶은 것만 보고싶은데

어떻게 해야되냐고 물어왔었다.


그래서 쓴다.




grep : 특정 패턴을 검사하고, 정규표현식도 사용가능하다.

옵션 

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

-c : 패턴이 일치하는 라인의 수를 출력한다.

-v : 지정한 패턴과 일치하는 것을 제외하고 출력한다.

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

-l : 패턴이 포함된 파일의 이름을 같이 출력한다.

-w : 패턴이 전체 단어와 일치하는 라인만 출력한다.


egrep : grep의 확장판이라고 보면 되고, 정규표현식 역시 사용가능하다.

fgrep : 정규표현식 사용이 불가능하며, 문자열로만 사용가능하다.




나는 grep을 쓸때 -v 말고는 

다른 옵션을 쓰지 않는다.

(-i 저거 좋아보이네)





테스트 파일 다섯개를 만들어 두었고,

각각 한줄씩 들어가있다.



1234, 2345, 1345, 3456

 뭐 이런식으로 만들어두었다.





우선 grep 명령어이다.

맨처음 것은 현재 디렉토리에 1이라는 패턴,

두번째 것은 현재 디렉토리에 2라는 패턴,

세번째 것은 현재 디렉토리에 3이라는 패턴이 

들어있는 파일을 출력한다.



cat 으로 test1 파일을 열고 1이 

포함되어 있는 라인을 찾는 명령어이다.

내 친구가 원하는 방법이 이 것이다.



-v 옵션을 사용하면 찾고자 하는 패턴을 

제외한 다른 파일들을 보여준다.



test1 파일 내용에는 1이 포함되어있고, 

그 한줄밖에 없어서 아무것도 

출력되지 않는다.





egrep은 grep의 진화된 버전이라 보면 된다.

이미지 처럼

egrep "패턴|패턴" ./*

으로 검색할 수 있다.





fgrep을 사용하면 모든게 문자열로 처리되어 실행된다.



fgrep과 일반 grep의 차이점이다.

grep은 특수문자 그대로 인식됐고,

fgrep은 문자열로 인식되어있음을 알 수 있다.




친구에게 vi사용방법, cat 파일 | grep 하는 방법

다 알려줬는데,

서로 말이 안통해서

고구마 3만개 정도 먹은 느낌이었다.


3줄 요약

grep은 패턴을 탐지하는 명령어이다.

grep, egrep, fgrep이 있다.

친구야 공부해라


Comments