Grep 은 워낙 유명한 리눅스의 패키지이며 그만큼 쓸일이 많으므로 다음의 기본 사용법 정도는 꼭 알아두도록 하자.
Grep 명령어는 파일 전체를 뒤져서 정규표현식에 해당하는 모든 행들을 출력하는 기능을 한다.
(ex) grep nw datafile -> datafile에서 nw를 포함하는 행 검색
grep nw d* -> d로 시작하는 모든 파일에서 nw를 포함하는 행을 검색
grep <keyword> * -> 모든 파일에서 키워드를 검색
grep '^n' datafile -> n으로 시작하는 datafile 내의 모든 행을 출력
grep '4$' datafile -> 4로 끝나는 datafile 내의 모든 행을 출력
grep '[^0-9]' datafile -> datafile 내에서 숫자가 아닌 문자를 하나라도 포함하는 모든 행을 출력
grep '[a-z]{9}' datafile -> datafile 내에서 소문자가 9번 이상 반복되는 문자열을 포함하는 모든 행을 출력한다.
grep 실행시 다음 옵션을 부여함으로써 유용하게 정보를 가공할 수도 있다.
-r(하위 디렉토리를 모두 검사)
-n(행 번호를 함께 출력)
-i(대소문자 미구분)
-l(행 대신 파일명만 출력)
-w(정확히 일치하는 경우만 검색)
-v(포함되지 않은 행을 출력)
주로 사용하는 건 위의 옵션들이다. 더 많은 옵션은 다음 링크를 참조하자. 예제도 아주 잘 정리되어있다.
(https://en.wikibooks.org/wiki/Grep)
(ex) grep -v 'ffl' datafile > edit
// datafile에서 ffl이 있는 행만을 추출하여 edit 파일에 씀.
(ex) grep -rl "*print$"
// 현재 폴더를 루트로 하여 서브 디렉토리를 모두 검사하여 print 로 끝나는 행을 가진 파일의 이름을 출력.
특히 서버에서 로그 분석 작업을 할 때, Grep 은 tail 과 함께 밥먹듯이 사용한다.
어느정도 프로젝트에서 자주 사용하는 정규식 포맷을 메모하여 grep 사용 시 적용시키는게 유용하다.
'Computer Base > Linux & OS' 카테고리의 다른 글
서버를 관리한다면 알아두어야할 리눅스(Linux) 유틸리티들 (0) | 2018.08.17 |
---|---|
리눅스(Linux) 의 사용 편의를 위한 Alias (0) | 2018.08.13 |
Daemon 과 Background Process 의 차이점 (0) | 2018.08.08 |
Linux 파티션 마운트 방법 (0) | 2018.08.07 |
Virtual Box 를 이용한 네트워크 구성 방식 (0) | 2018.08.06 |