Skip to content

Linux 기본명령어 grep #
Find similar titles

You are seeing an old version of the page. Go to latest version

Structured data

Category
Programming

리눅스 기본명령어 - grep #

grep 명령은 파일 내에서 지정한 패턴이나 문자열을 찾은 후에, 그 패턴을 포함하고 있는 모든 행을 표준 출력해 준다. 물론, 한 디렉토리 내에서 지정한 패턴을 포함하는 파일을 출력할 수도 있다. grep 명령은 하나 이상의 파일로부터 프로그램 수정 등을 위해 변수, 또는 함수명을 찾을 때 많이 사용된다.

사용법 #

-c : 패턴이 일치하는 행의 수를 출력 
-i : 비교시 대소문자를 구별 안함 
-v : 지정한 패턴과 일치하지 않는 행만 출력 
-n : 행의 번호를 함께 출력 
-l : 패턴이 포함된 파일의 이름을 출력 
-w : 패턴이 전체 단어와 일치하는 행만 출력

여기서 ‘문자열’은 사용자가 찾으려는 단어 또는 구를 나타내고 ‘파일명’은 검색 대상 파일이다. ‘문자열’은 하나 또는 여러 문자를 의미한다. 단일 문자도 단어나 문장과 같이 하나의 문자열이다. 문자열에는 “빈칸”, 구두점과 보이지 않는 (제어) 문자들이 포함될 수 있다. 파일명은 지정하면 해당 파일에서만 찾지만, 파일명을 *와 같은 메타문자를 사용하면 현재 디렉토리의 모든 파일을 대상으로 하므로 디렉토리내의 모든 파일내에서 해당 문자열을 찾게된다. grep, egrep, fgrep의 차이를 간단히 요약하여 정리하면 다음과 같다.

grep은 다른 명령어들과 함께 “필터”로 자주 사용된다. grep은 사용자가 명령의 수행결과에서 불필요한 정보를 제거할 수 있도록 한다. grep을 필터로 사용하려면, 반드시 명령의 수행 결과를 grep을 통해 파이프(|) 해야 한다.

정규표현식 #

$ grep '^a' 파일명 
= ^는 파일의 시작을 나타냄. 파일에서 a로 시작하는 행을 찾는다. 
$ grep 'apple$' 파일명
= $는 파일의 끝을 나타냄. 파일에서 e로 끝나는 행을 찾는다. 
$ grep 'app*' 파일명 
= 파일에서 app로 시작하는 모든 단어를 찾는다. 
$ grep 'a.....e' 파일명 
= 파일에서 a로 시작하고 e로 끝나는 7자리 단어를 찾는다. 
$ grep [a-d] 파일명 
= 파일에서 a,b,c,d로 시작하는 단어를 모두 찾는다. 
$ grep [aA]pple 파일명 
= 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
$ grep 'apple' d*
= d로 시작하는 모든 파일에서 apple을 포함하는 모든 행을 찾는다. 
$ grep 'apple' 파일명1 파일명2 
= 지정된 두개의 파일에서 apple을 포함하는 모든 행을 찾는다. 
$ grep '^[ab]' 파일명 
= 파일에서 a나 b로 시작되는 모든 행을 찾는다.
0.0.1_20210630_7_v33