grep이 하는 일
grep은 텍스트에서 특정 문자열이 들어 있는 줄만 골라서 출력하는 명령어다.
파일이든, 다른 명령의 출력이든 상관없다.
항상 “줄 단위”로 동작한다.
기본 형태
파일을 직접 검색할 때
grep 찾을문자 파일
다른 명령 결과를 검색할 때
명령 | grep 찾을문자
여기서 | 는 쉘 파이프다.
앞 명령의 결과를 grep에게 넘긴다는 뜻이다.
| 는 두 종류가 있다
3-1. 쉘 파이프 |
명령과 명령 사이에 있는 | 는 쉘 기능이다.
zcat /proc/config.gz | grep KVM
의미
zcat이 출력한 내용을 grep에게 넘기고,
grep이 KVM이 들어간 줄만 출력한다.
3-2. grep 검색 조건 안의 |
grep 검색 문자열 안에 있는 | 는 “또는(OR)” 의미다.
이건 grep의 정규식 문법이다.
grep -E "KVM|VIRTUALIZATION" 파일
의미
KVM이 들어 있거나
VIRTUALIZATION이 들어 있는 줄을 출력한다.
-E 옵션은 언제 필요하나
grep에는 두 가지 동작 모드가 있다.
기본 grep
| 를 그냥 문자로 인식한다
OR 의미가 아니다
grep "KVM|VIRTUALIZATION" 파일
이건
KVM|VIRTUALIZATION 이라는 문자열을 그대로 찾는다.
확장 grep (-E)
| 를 OR 로 인식한다
grep -E "KVM|VIRTUALIZATION" 파일
이건
KVM 또는 VIRTUALIZATION 을 의미한다.
결론
grep에서 | 를 OR 의미로 쓰려면 -E 는 필수다.
따옴표를 쓰는 이유
따옴표는 쉘이 특수문자를 먼저 해석하지 못하게 막아준다.
실무에서는 검색 문자열에 따옴표를 항상 쓰는 게 안전하다.
자주 쓰는 옵션
대소문자 무시
grep -i kvm 파일
해당 줄 제외
grep -v "^#"
줄 번호 출력
grep -n KVM 파일
정규식 없이 문자열 그대로 검색
grep -F "KVM|VIRTUALIZATION" 파일
grep 결과 해석
grep은 결과가 없으면 아무것도 출력하지 않는다.
이건 오류가 아니라 “없다”는 뜻이다.
출력 있음
해당 문자열이 존재한다.
출력 없음
해당 문자열이 존재하지 않는다.
PNOS 커널 설정 확인 예제
zcat /proc/config.gz | grep -E "CONFIG_KVM|CONFIG_VIRTUALIZATION"
이 명령은
커널 설정 중에서
KVM 관련 줄이거나
가상화 관련 줄만 보여준다.
결과가
# CONFIG_VIRTUALIZATION is not set
이면
가상화 기능이 커널에 포함되지 않았다는 뜻이다.
아무 출력도 없으면
해당 옵션 자체가 존재하지 않는다.
핵심 요약 문장
grep은 줄 필터다.
| 를 OR 의미로 쓰려면 -E 는 반드시 필요하다.
명령 사이의 | 와 grep 안의 | 는 완전히 다르다.
이 상태면 grep은 이제 “이해한 상태”다.
다음으로 awk, sed, wc 같은 걸로 넘어가도 된다.
'네트워크' 카테고리의 다른 글
| 리눅스 한개의 인터페이스에 여러 IP추가 방법 (0) | 2026.02.03 |
|---|---|
| 리눅스 KVM 실행 중인지 확인 과정 (1) | 2026.01.08 |
| 암호화 알고리즘, 무결성 체크 알고리즘 (0) | 2025.12.05 |
| 리눅스의 용어 및 경로 (내용 추가 중) (0) | 2025.12.03 |
| RSA 서명과 SHA-512 해시값 이해하기 (0) | 2025.12.03 |