본문 바로가기
컴퓨터 관련/Linux || Unix

[Linux|Unix] 리눅스 grep 옵션 정리

by _BlankSpace 2017. 8. 23.

 1. grep 명령어란? 

윈도우에서 비주얼 스튜디오라는 강력한 IDE를 사용하여 개발하던 사람들이 리눅스로 개발할 때는 공통적으로 불편해 하는 점이 있다.

바로, 해당 문자열이 어느 소스 파일에 있는 지, 확인하는 것이다.

설마, 일일히 모든 코드를 다 뒤져봐야 할까? 물론, 이것도 하나의 방법이겠다. 파일이 적다면 말이다.


그래서 이번에 리눅스의 명령어인 grep 을 정리하고자 한다. grep은 특정 문자열을 파일에서 찾아주는 명령어이다. 먼저, 다음의 예를 보자.



grep의 사용법은 다음과 같다.

grep [옵션][정규표현식(문자열)][찾기 대상이 될 파일명]




 2. grep 에서 사용하는 정규표현식 메타 문자


 메타문자

 기능

사용 예

사용 예 설명

 ^

행의 시작 지시자 

'^test'

test로 시작하는 모든 행과 대응함.

 $

행의 끝 지시자 

'test$'

test로 끝나는 모든 행과 대응함. 

 .

하나의 문자와 대응 

't.s.' 

총 4개의 문자로 이루어진 문자열을 검색하는 데, 첫 번째는 't' 세 번째는 's'인 문자열을 모두 대응.

 *

선행 문자와 같은 문자 0개 또는 임의 개수와 대응

'test*' 

'test'를 기본으로 뒤에 아무 문자나 포함하여도 모두 대응.

 []

[] 사이의 문자 집합 중, 하나와 대응 

'[Tt]est' 

'test' 나 'Test'를 대응함.

 [^ ]

문자집합에 속하지 않는 한 문자와 대응 

'[^A-T]est'

A와 T 사이 범위에 포함되지 않는 한 문자와 est가 붙은 문자열만 검색한다. 

 \<

단어의 시작 지시자 

'\ 

test로 시작하는 단어를 포함하는 행과 대응 

 \>

단어의 끝 지시자 

'test\>' 

test로 끝나는 단어를 포함하는 행과 대응 

 \(..\)

다음 사용을 위해서 태그를 붙임. 

'\(tes\)ing'

지정된 부분을 태그 1에 저장한다. 나중에 태그 값을 참고하려면 \1을 쓴다. 맨 왼쪽부터 시작하여 태그를 9개까지 쓸 수 있다. 왼쪽 예에서는 tes가 레지스터1에 저장되고, 나중에 \1로 참고할 수 있다. 

 x\{m\}

문자 x를 m번 반복한다. 

't\{5\}' 

문자 t가 5회 연속으로 나오는 모든 행을 대응함. 

 x\{m,\}

적어도 m번 반복한다. 

't\{5,\}'

문자 t가 최소한 5회 반복되는 모든 행과 대응함. 

 x\{m,n\}

m회 이상 n회 이하 반복한다. 

t\{5,10\}' 

문자 t가 5회에서 10회 사이의 횟수로 연속으로 나오는 문자열과 대응함.



 3. grep의 옵션


옵션 

동작 설명 

 -b

검색 결과의 각 행 앞에 검색된 위치의 블록 번호를 표시한다. 검색 내용이 디스크 어느 곳에 위치했는 지를 알아내는데 유용하다. 

 -c

검색 결과를 출력하는 대신에 찾아낸 행의 총 개수를 출력한다.

 -h

파일 이름을 출력하지 않는다. 

 -i

대소문자를 구분하지 않는다. (대소문자 같은 취급) 

 -I

대소문자를 구분한다.

 -l

패턴이 존재하는 파일의 이름만 출력한다. 

 -n

파일 내에서 행 번호를 함께 출력한다. 

 -s

에러 메시지 외에는 출력하지 않는다. 

 -v

패턴이 존재하지 않는 행만 출력한다. 

 -w

패턴 표현식을 하나의 단어로 취급하여 검색한다. 



이상으로 정리를 마치겠습니다. 

제 글이 도움이 되셨다면 공감 버튼 눌러주시면 감사하겠습니다! (광고도 한번 씩 클릭해주시면 저의 블로그 품질이 올라갑니다)

댓글