Written by
Sunwoo Han
on
on
grep 명령어 사용법
grep
grep
은 텍스트 검색 기능을 가진 명령어이다. 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는데 정규표현식1을 사용하면 같은지(equal) 검사하는 수준을 넘어 훨씬 다양하고 효율적인 기능을 제공한다.
기본 문법
$ grep [OPTION] [PATTERN] [FILENAME]
명령어 옵션
grep 명령에서 사용할 수 있는 옵션은 grep --help
명령을 통해 더욱 자세히 확인할 수 있다.
OPTION | |
---|---|
-i | 대/소문자를 구분하지 않음 |
-r | 디렉토리 내의 모든 파일에 커맨드 실행 |
-l | 매칭 라인과 파일 이름만 출력 |
-v | 매칭되지 않는(패턴이 없는) 라인만 출력 |
-c | 파일 당 매칭 라인(패턴이 있는 라인)의 개수 출력 |
-n | 검색 결과 매칭된 라인 넘버를 맨 앞에 출력 |
-A[n] | [n] 값은 숫자, 매칭된 라인 뒤의 n개의 라인 출력 |
-B[n] | [n] 값은 숫자, 매칭된 라인 앞의 n개의 라인 출력 |
-C[n] | [n] 값은 숫자, 매칭된 라인 앞, 뒤의 n개의 라인 출력 |
매치되는 패턴에 색 입히기
$ grep --color=always [PATTERN] [FILENAME]
~/.bash_profile 등에 아래 내용으로 쉘 환경을 사전 설정해두면 grep 커맨드 실행마다 색을 출력한다.
GREP_OPTIONS="--color=always";export GREP_OPTIONS
자주 사용하는 명령어 예시
grep 사용 예 | |
---|---|
대상 파일에서 문자열 검색 | grep “EXAM” [FILE] |
현재 디렉토리 모든 파일에서 문자열 검색 | grep “EXAM” * |
특정 확장자를 가진 모든 파일에서 문자열 검색 | grep “EXAM” *.ext |
대소문자 구분하지 않고 문자열 검색 | grep -i “EXAM” [FILE] |
매칭되는 패턴이 존재하지 않는 라인 선택 | grep -v “EXAM” [FILE] |
하위 디렉토리를 포함한 모든 파일에서 문자열 검색 | grep -r “EXAM” * |
검색된 문자열이 포함된 라인 번호 출력 | grep -n “STR” [FILE] |
A로 시작하여 B로 끝나는 패턴 찾기 | grep “A.*B” * |
0-9 사이 숫자만 변경되는 패턴 찾기 | grep “EXAM[0-9]” * |
문자열 패턴 전체를 정규 표현식 메타 문자가 아닌 일반 문자로 검색하기 | grep -F “*[]?…” [FILE] |
정규 표현식 메타 문자를 일반 문자로 검색하기 | grep “\*” [FILE] |
문자열 라인 처음 시작 패턴 검색하기 | grep “^EXAM” [FILE] |
문자열 라인 마지막 종료 패턴 검색하기 | grep “$EXAM” [FILE] |
Reference
-
정규표현식(Regular Expression)이란, 특정 규칙을 가진 문자열 집합을 표현하기 위한 형식 언어로써, 주로 문자열 패턴 매칭을 검사하거나 문자열을 치환하기 위해 사용된다. ↩
Comments
CS 의 다른 글
-
HTTP 헤더 - 캐시와 조건부 요청 03 Jan 2022
-
HTTP 헤더 - 일반 헤더 26 Dec 2021
-
HTTP 상태코드 20 Dec 2021
-
HTTP 메서드 활용 17 Dec 2021
-
HTTP 메서드 12 Dec 2021
-
HTTP 기본 09 Dec 2021
-
URI와 웹 브라우저 요청 흐름 08 Dec 2021
-
인터넷 네트워크 06 Dec 2021
-
Single LinkedList 01 Oct 2021
-
ArrayList 24 Sep 2021
-
List Interface(리스트 인터페이스) 23 Sep 2021
-
자바 컬렉션 프레임워크 20 Sep 2021
-
면접 기초 질문 리스트 31 Aug 2021
-
인프라 기초 총정리 14 Aug 2021
-
하드웨어와 네트워크 기초 지식 03 Aug 2021
-
오버레이 네트워크(Overlay Network) 02 Aug 2021
-
이건 꼭 알고 가자! 면접 출제 빈도가 높은 질문들 19 May 2021
-
1분 자기소개 19 May 2021
-
백엔드 개발자 면접 / 학습내용 15 Feb 2021
-
너비 우선 탐색(breadth-first search, BFS) 22 Oct 2020
-
깊이 우선 탐색(depth-first search, DFS) 10 Oct 2020
-
크리티컬 섹션(Critical Section) 10 Sep 2020
-
삽입 정렬(Insertion Sort) 04 Sep 2020
-
선택 정렬(Selection Sort) 04 Sep 2020
-
거품 정렬(Bubble Sort) 04 Sep 2020
-
LRU 알고리즘 31 Aug 2020
-
Stack, Queue 29 Aug 2020
-
awk 명령어 사용법 24 Aug 2020
-
grep 명령어 사용법 23 Aug 2020
-
DNS의 이해 14 Aug 2020
-
대칭키와 공개키 10 Aug 2020
-
HTTP & HTTPS 10 Aug 2020