상세 컨텐츠

본문 제목

grep 의 종류와 사용법 (egrep fgrep)

IT : Ubuntu

by 인포개더러 2013. 10. 22. 03:22

본문



grep 의 종류와 사용법 (egrep fgrep)


grep 은 linux 에서 특정 문자열을 찾는 명령어 입니다.

이 명령어는 정규식을 사용할 수 있기 때문에 다양한 검색이 가능합니다.


grep 의 문법과 option 은 아래와 같습니다.


 grep [OPTION]... PATTERN [FILE]...


-v : PATTERN 과 일치하지 않는 것을 찾음

-n : 찾은 line number(줄번호) 를 출력

-i : 대소문자 구별하지 않음

-c : PATTERN 과 일치하는 line 수를 출력

-r : 하위 dir 검색

--exclude=FILE_PATTERN 특정 파일을 검색하지 않음

--include=FILE_PATTERN 특정 파일만 검색함

--exclude-dir=PATTERN 특정 이름의 dir 은 검색에서 제외함

-F : 정규식 사용하지 않음

-E : 확장 정규식 사용


예를 들어보자면 현재 android 전체 소스에서 abcd 라는 문자열을 가진 파일을 검색하고 line number를 표시 하는데 .repo 와 .git 에 있는 내용은 검색하지 않고 싶다면


grep -r -n --exclude-dir=.git --exclude-dir=.repo abcd ./


와 같이 표시할 수 있습니다.


만일 해당 파일들을 git reset 하고 싶다면 xargs 를 이용할 수 있습니다.


grep -r -n --exclude-dir=.git --exclude-dir=.repo abcd ./ | xargs -c git reset --hard HEAD {}



egrep 은 grep 이 사용하는 정규식보다 확장된 확장 정규식을 사용할 수 있는 grep 입니다.

확장이라 함은 | 를 사용하여 여러개의 문자열을 찾을 수 있다는 것 입니다.


예를 들어보면


egrep -r -n '(abcd|dcba)' ./


현재 dir 에서 abcd 나 dcba 가 포함된 파일을 찾는 명령입니다.

이것은 아래의 grep 의 -E 옵션을 주는 것과 동일 합니다.


grep -E -r -n '(abcd|dcba)' ./


fgrep 은 정규식을 사용하지 않는 grep 입니다. 정규식을 처리하지 않기 때문에 빠른 검색 결과를 얻을 수 있습니다.

.dat 라는 문자를 포함하는 파일을 찾는 명령입니다.


fgrep -r -n .dat ./


이것은 아래의 -F 옵션을 준 grep 명령과 동일 합니다.


grep -F -r -n .dat ./



관련글 더보기