> 텍스트 처리 및 검색 > grep

grep 명령어 완전 정복

Linux에서 텍스트 파일이나 표준 입력에서 특정 패턴을 검색하는 `grep` 명령어에 대한 가이드입니다. 이 도구를 통해 원하는 텍스트를 효율적으로 찾고 필터링할 수 있습니다.

주요 옵션

`grep` 명령어의 다양한 옵션들을 조합하여 원하는 텍스트를 검색해 보세요.

1. 기본 검색

2. 검색 옵션

3. 출력 옵션

4. 재귀 검색

생성된 명령어:

명령어를 조합해 보세요.

설명:

`grep` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

정규 표현식 기초

`grep` 명령어는 강력한 텍스트 검색을 위해 정규 표현식(Regular Expressions)을 지원합니다. 정규 표현식을 사용하면 복잡한 패턴도 쉽게 찾아낼 수 있습니다.

자주 사용되는 정규 표현식 메타 문자 정규 표현식에서 특별한 의미를 가지는 문자들입니다.
문자 설명 예시
. 모든 단일 문자 (줄바꿈 제외) `a.b` (acb, amb 등)
* 앞 문자가 0번 이상 반복 `ab*c` (ac, abc, abbc 등)
+ 앞 문자가 1번 이상 반복 `ab+c` (abc, abbc 등)
? 앞 문자가 0번 또는 1번 나타남 `ab?c` (ac, abc)
^ 줄의 시작 `^start` (start로 시작하는 줄)
$ 줄의 끝 `end$` (end로 끝나는 줄)
[abc] 괄호 안의 문자 중 하나 `[aeiou]` (모음)
[a-z] 범위 내의 문자 중 하나 `[0-9]` (숫자)
[^abc] 괄호 안의 문자를 제외한 문자 `[^0-9]` (숫자가 아닌 문자)
\b 단어 경계 `\bword\b` (정확히 'word' 단어)
| OR 연산 (두 패턴 중 하나) `cat|dog` ('cat' 또는 'dog')

기본 정규 표현식(BRE)과 확장 정규 표현식(ERE)

`grep`은 기본적으로 BRE를 사용합니다. `+`, `?`, `|`, `(`, `)`와 같은 문자를 특별한 의미로 사용하려면 앞에 백슬래시(`\`)를 붙여야 합니다. `-E` 옵션을 사용하면 ERE 모드가 되어 이들 문자를 백슬래시 없이 사용할 수 있습니다. `-P` 옵션은 더 강력한 PCRE를 제공합니다.

사용 예시

`grep` 명령어의 실용적인 사용 예시들을 통해 텍스트 검색을 연습해 보세요.

로그 파일에서 'error' 검색

grep 'error' /var/log/syslog

`syslog` 파일에서 'error' 문자열이 포함된 모든 줄을 출력합니다.

대소문자 구분 없이 'failed' 검색 및 줄 번호 출력

grep -in 'failed' /var/log/auth.log

대소문자 관계없이 'failed'를 검색하고, 결과와 함께 줄 번호를 표시합니다.

특정 패턴이 없는 줄만 출력

grep -v '^#' /etc/nginx/nginx.conf

`nginx.conf` 파일에서 주석(#)으로 시작하는 줄을 제외하고 출력합니다.

하위 디렉토리를 포함하여 '.conf' 파일에서 'server_name' 검색

grep -r 'server_name' *.conf

현재 디렉토리와 모든 하위 디렉토리의 '.conf' 확장자를 가진 파일들에서 'server_name' 패턴을 재귀적으로 검색합니다.

특정 프로세스 찾기 (ps와 파이프 조합)

ps aux | grep apache2

`ps aux` 명령의 결과에서 'apache2' 관련 프로세스만 필터링하여 확인합니다.

여러 파일에서 'warning' 또는 'critical' 검색

grep -E 'warning|critical' /var/log/syslog /var/log/kern.log

정규 표현식의 OR(|) 연산자를 사용하여 여러 로그 파일에서 'warning' 또는 'critical' 메시지를 검색합니다.


동일 카테고리 명령어