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 조건별 파일 검색 파일명, 크기, 소유자, 타입 등으로 탐색