2009. 5. 20.

grep, egrep, fgrep

grep, egrep, fgrep

grep(egrep, fgrep) [option] “pattern” filename



-i : 대소문자 구별을 하지 않는다.
-v : pattern 을 포함하지 않는 행만 출력한다.
-n : 행번호를 출력한다.
-l : 파일명만 출력한다.
-c : 패턴과 일치하는 라인의 갯수만 보여준다.



grep : 강력한 패턴 매칭 템플릿을 정의하기 위해 "정규 표현식"을 사용할 수 있다.
egrep [옵션] "패턴|패턴|..." [대상파일들] : 확장된 정규 표현식을 사용하며, 찾아낼 패턴을 여러개 지정할 수 있다. '|'기호는 불린 연산자 "OR"에 해당하므로, 정해진 패턴들에 포함되는 모든 라인을 보여준다.

fgrep [옵션] 패턴 [대상파일들] : 패턴과 정확히 일치하는 것만을 찾아 준다.



많은 시스템 관리 명령들과 파이프(pipe)를 이용해서 사용할 수 있다. 흔히 사용하는 것은 프로세스 확인이다.
$ ps aux | grep httpd
위와 같이 현재 시스템의 프로세스중 httpd 만 검색해 낸다.
만일 pipe 를 이용하여 검색할경우 검색 패턴이 한개 이상일 경우엔 egrep을 이용하여 검색할수 있다.

$ ps aux | egrep 'httpd|mysql'


$ grep -v "^[ ^I]*$" 파일명 //공백을 제거한 파일 내용 살펴보기
$ grep -v "^#*$" 파일명 //주석을 제거한 파일 내용 살펴보기

만일 현재 디렉토리와 그 하위 디렉토리까지 grep 패턴 검색을 하고자 할땐 find 명령을 이용하면 된다.
$ find . -exec grep "pattern" {} \;

댓글 없음: