Linux 명령어 · 2 min read · Sep 14, 2025

초보자를 위한 Linux fgrep 명령어 튜토리얼 (예제 포함)

grep은 잘 알려진 Linux 명령어입니다(우리는 이미 자세히 다뤘습니다). 하지만 이 도구의 두 가지 다른 변형이 존재한다는 것을 알고 계셨나요? 맞습니다, 이들은 egrepfgrep입니다. 이 튜토리얼에서는 이해하기 쉬운 예제를 사용하여 후자를 다룰 것입니다. 하지만 그 전에, 이 튜토리얼에서 언급된 모든 예제와 지침은 Ubuntu 16.04LTS에서 테스트되었다는 점을 언급할 가치가 있습니다.

Linux fgrep 명령어

공식 문서를 살펴보면, grep 명령어의 man 페이지는 fgrep이 grep -F에 불과하다고 말합니다. 또한 fgrep 및 egrep과 같은 변형은 단지 이전 버전과의 호환성을 위해 제공된다고도 합니다. 이 튜토리얼에서 이러한 세부 사항에 대해 나중에 다룰 것입니다.

그동안 fgrep의 구문은 다음과 같습니다(이는 grep과 동일합니다):

grep [OPTIONS] PATTERN [FILE...]

그리고 grep 명령어의 man 페이지는 도구를 다음과 같이 설명합니다:

grep은 주어진 PATTERN과 일치하는 줄을 포함하는 지정된 입력 FILE을 검색합니다. 파일이 지정되지 않거나 파일 "-"가 주어지면, grep은 표준 입력을 검색합니다. 기본적으로 grep은 일치하는 줄을 출력합니다.

다음의 Q&A 스타일의 예제는 fgrep이 어떻게 작동하는지에 대한 더 나은 아이디어를 제공할 것입니다.

Q1. fgrep은 grep 및 egrep과 어떻게 다릅니까?

fgrep 명령어는 PATTERN을 줄 바꿈으로 구분된 고정 문자열 목록으로 해석한다는 점에서 grep 및 egrep과 다릅니다(정규 표현식 대신).

fgrep이 grep -F와 동일하다고 하니, StackExchange에서 전문가가 grep의 -F 옵션을 설명한 방식은 다음과 같습니다:

`-F` 스위치는 grep을 다른 모드로 전환하여 일치할 패턴을 수락하지만, 그 패턴을 줄마다 하나의 검색 문자열로 나누고, 특별한 패턴 매칭 없이 문자열 중 하나에 대해 OR 검색을 수행합니다.

Q2. fgrep을 어떻게 사용합니까?

fgrep 사용법을 이해하기 위해, 먼저 기본 예제를 살펴보겠습니다. 다음 내용을 포함하는 파일(file1)이 있다고 가정해 보겠습니다:

그리고 file1에서 검색하고자 하는 단어 목록이 포함된 다른 파일(words.txt)이 있습니다.

따라서 fgrep을 사용하여 이 검색을 수행하는 방법은 다음과 같습니다:

fgrep -f words.txt file1

찾은 단어가 빨간색으로 강조 표시된 것을 볼 수 있습니다. 이제 여러분 중 일부는 grep과 egrep도 이 경우 유사한 출력을 생성할 것이라고 주장할 수 있습니다. 그렇다면 fgrep은 어떻게 다릅니까?

첫째, 맞습니다. grep 및 egrep 명령어도 유사한 출력을 생성합니다:

하지만 file1과 words.txt가 다음 내용을 포함할 경우 차이가 분명해질 것입니다(단어 내의 특수 문자를 관찰하십시오):

여기서 egrep과 grep은 모든 단어를 찾지 못할 것입니다:

하지만 fgrep은 의도한 대로 작동할 것입니다:

Q3. fgrep과 grep 사이에 정말로 차이가 없습니까?

공식 문서에 따르면, fgrep과 grep -F 명령어 사이에는 차이가 없습니다. 그러나 두 도구 사이에는 사용되는 문자열 매칭 알고리즘이라는 주요 차이가 있다고 보고되고 있습니다. fgrep은 Aho-Corasick 알고리즘을 사용하는 반면, grep은 Commentz-Walter의 수정된 버전을 사용합니다.

“이것은 grep이 최악의 경우 O(mn) 복잡성을 가지는 반면, fgrep은 최악의 경우 O(m+n)이라는 것을 의미합니다,”라고 StackExchange 포럼의 전문가가 말합니다.

결론

명백하게도 fgrep 명령어는 이해하고 사용하는 것이 어렵지 않습니다. fgrep과 grep -F의 차이에 대해서는 Q3에서 이미 언급한 바와 같이, 이 문제는 많은 사용자에게 큰 문제가 되지 않을 것이라고 생각합니다. 의문이 있거나 fgrep 관련 질문이 있다면, 아래에 댓글을 남겨 주시면 저희가 답변해 드리겠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.