Infra & Cloud/Linux
[Linux] grep, find로 텍스트 & 파일 검색하기
winter126
2025. 6. 25. 17:32
grep
grep은 파일에서 특정 문자열이나 패턴을 찾아주는 명령어이다.
텍스트 검색의 기본.
텍스트 파일, 포그 파일 분석 등에 자주 쓰인다.
grep [옵션] '패턴' 파일명
✅ 자주 쓰이는 grep 옵션
옵션 | 설명 |
-i | 대소문자 구분 없이 검색 |
-v | 해당 문자열이 포함되지 않은 줄 출력 |
-n | 줄 번호와 함께 출력 |
-c | 매칭된 줄 수 출력 |
-l | 매칭된 파일 이름만 출력 |
-w | 정확히 일치하는 단어만 검색 (부분 문자열 제외) |
📌 사용 예시
grep 'sshd' /etc/passwd # 'sshd'가 포함된 줄 찾기
grep -i 'nologin' /etc/passwd # 대소문자 무시하고 'nologin' 검색
grep -v '/bash' /etc/passwd # '/bash'가 없는 줄 출력
grep -n 'ftp' /etc/passwd # 줄 번호와 함께 출력
grep -c '/sbin/nologin' /etc/passwd # 몇 줄이 매칭됐는지 출력
정규표현식 패턴 검색
grep은 문자열을 단순히 포함하는 것뿐 아니라, 패턴(정규표현식)을 사용해서 더 유연하고 강력한 검색이 가능하다.
자주 쓰이는 기본 패턴은 아래와 같다.
패턴 | 의미 | 예시 |
^문자 | 해당 문자로 시작하는 줄 | ^a → a로 시작하는 줄 |
문자$ | 해당 문자로 끝나는 줄 | sh$ → sh로 끝나는 줄 |
. | 임의의 한 문자 | r..t → root, rent 등 |
* | 바로 앞 문자가 0번 이상 반복 | lo*g → lg, log, loooog |
[abc] | a 또는 b 또는 c | [ch]at → cat, hat |
[^abc] | a, b, c 제외한 문자 | [^a-z] → 소문자 아닌 것 |
a\{3\} | a가 3번 반복 | a\{3\} → aaa |
*는 단독으로 쓰는 게 아니라, 앞 문자와 함께 사용된다는 점 꼭 기억하자.
예: a* → a가 0번 이상 나오는 패턴 ('', 'a', 'aa' 등과 매칭)
egrep & fgrep
grep의 변형 명령어인 egrep과 fgrep도 상황에 따라 사용된다.
명령어 | 특징 | 예시 |
egrep 또는 grep -E | 확장 정규표현식 사용 가능 | `egrep 'error |
fgrep 또는 grep -F | 정규표현식 없이 문자열 그대로 검색 | fgrep 'a.b' file.txt → 진짜로 a.b 찾음 |
egrep, fgrep은 점점 grep -E, grep -F 형태로 대체되고 있다.
문서 작업 시엔 grep 옵션으로 통일하는 걸 추천한다!
find ⭐
find는 파일을 이름, 크기, 소유자, 수정일 등 조건에 따라 검색할 수 있는 강력한 명령어이다.
find [경로] [옵션] [조건]
✅ 자주 쓰이는 find 옵션
옵션 | 설명 |
-name | 파일 이름 검색 (*, ? 와일드카드 사용 가능) |
-type | 파일 타입 지정 (f: 일반 파일, d: 디렉토리 등) |
-user | 특정 사용자가 소유한 파일 검색 |
-size | 파일 크기로 검색 (+1M, -100k, +3000000c 등) |
-exec | 검색된 파일에 명령어 실행 ({} \; 사용) |
📌 사용 예시
find /etc -name 'resolv.conf' # 이름이 'resolv.conf'인 파일 찾기
find /var/log -name '*.log' -type f # .log로 끝나는 일반 파일만 찾기
find /home -type f -user nobody # nobody 사용자가 소유한 파일 검색
find /usr/bin -size +500k # 500KB 초과 파일 검색
find ~/projects -type f -name '*.tmp' -delete # .tmp 파일 모두 삭제
find ~ -name test -type f -exec rm {} \; # 이름이 test인 파일 삭제
요약
명령어 | 핵심 기능 | 추천 사용 상황 |
grep | 텍스트 검색 | 로그 분석, 문자열 포함 여부 확인 |
grep -E (egrep) | 확장 정규표현식 검색 | OR 조건 등 복잡한 패턴 검색 |
grep -F (fgrep) | 순수 문자열 검색 | 특수문자 포함 문자열 그대로 찾을 때 |
find | 조건별 파일 검색 | 파일명, 크기, 소유자, 타입 등으로 탐색 |