Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 디렉토리관리
- 네트워크정리
- 리눅스퍼미션
- 파일명령어
- 백준
- 컴퓨터네트워크
- 리눅스기초
- 제주코딩베이스캠프
- Linux
- 파이썬
- 위니브
- 더오름
- 백준1312
- 링크명령어
- 제주ICT
- 네트워크기초
- 코테
- 자료구조
- 리눅스셸명령어
- javascript
- 개발자
- 코테준비
- 터미널명령어
- 네트워크핵심정리
- 네트워크
- 백준2587
- 코딩테스트
- Python
- 네트워크면접
- 리눅스
Archives
- Today
- Total
hyei-devlog
[Linux] grep, find로 텍스트 & 파일 검색하기 본문
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 | 조건별 파일 검색 | 파일명, 크기, 소유자, 타입 등으로 탐색 |

'Infra & Cloud > Linux' 카테고리의 다른 글
| [Linux] vi 편집기 사용법부터 파일 권한, 셸 명령어까지 총정리 (0) | 2025.06.26 |
|---|---|
| [Linux] 리눅스 디렉토리 구조 & 기초 파일·링크 명령어 총정리 (0) | 2025.06.25 |
| [Linux] 리눅스란 무엇인가? 개념 · 특징 · 역사 (0) | 2025.06.24 |