fgrep — 고정 문자열 검색
Linux / 리눅스 기본 명령어 / fgrep.html
정규식 해석 없이 문자열 그대로를 찾는 grep 계열 명령어.
기본 정보
| 명령어 이름 | fgrep |
|---|---|
| 한 줄 소개 | 정규식 해석 없이 문자열 그대로를 찾는 grep 계열 명령어. |
| 제공 | GNU grep |
| 공식 문서 | https://man7.org/linux/man-pages/man1/grep.1.html |
| 지원 운영체제 | Linux, macOS(사용 중단 권고), BSD |
| 설치 여부 | 기본 탑재 |
| 분류 | 리눅스 기본 명령어 (태그: 리눅스 기본 명령어 (태그: fgrep, grep, 고정 문자열, literal)) |
이 명령어는 무엇인가?
fgrep은 grep -F와 같은 동작을 하며, 패턴을 정규식이 아닌 고정 문자열로 취급합니다. 점이나 대괄호가 들어간 문자열을 그대로 찾을 때 유용합니다.
최신 GNU grep은 fgrep 대신 grep -F 사용을 권장합니다. 여러 고정 문자열을 파일에서 읽어 한 번에 찾을 때는 grep -F -f patterns.txt 형태가 편리합니다.
어떤 문제를 해결하는가?
- IP 주소나 버전 문자열처럼 점이 포함된 값을 찾을 때
- 대괄호나 별표가 든 로그 문구를 그대로 찾을 때
- 여러 고정 문자열을 목록 파일로 검색할 때
- 정규식 이스케이프를 피하고 싶을 때
주요 기능
리터럴 매칭
메타문자를 일반 문자로 취급합니다.
- 활용 상황: 점이나 대괄호가 포함된 값을 찾을 때
- 얻는 결과: 이스케이프 없이 정확히 일치합니다.
- 제한 사항: 정규식 기능은 사용할 수 없습니다.
목록 검색
-f로 여러 문자열을 파일에서 읽습니다.
- 활용 상황: 차단 목록이나 키워드 집합을 검사할 때
- 얻는 결과: 호출 한 번으로 다량 검색이 됩니다.
- 제한 사항: 빈 줄이 있으면 모든 줄과 일치할 수 있습니다.
성능
고정 문자열은 빠른 알고리즘을 사용합니다.
- 활용 상황: 대용량 로그에서 단순 문자열을 찾을 때
- 얻는 결과: 정규식보다 빠른 경우가 많습니다.
- 제한 사항: 대소문자 무시는 별도 옵션이 필요합니다.
설치 및 실행
설치 여부 확인
fgrep --version
sudo apt install grep # Debian/Ubuntu sudo dnf install grep # Fedora
실제 사용 예제
점이 포함된 값
IP 주소를 그대로 찾습니다.
fgrep '192.168.0.10' access.log
목록으로 검색
여러 문자열을 파일에서 읽어 찾습니다.
printf 'ERROR\nFATAL\n' > /tmp/p.txt
fgrep -f /tmp/p.txt app.log
grep -F로 대체
권장 문법으로 동일하게 실행합니다.
grep -F '[main]' app.log