Comandos Linux · 3 min read · Sep 14, 2025

Tutorial do Comando fgrep do Linux para Iniciantes (com Exemplos)

Enquanto grep é um comando Linux bem conhecido (já o cobrimos em detalhes), você sabia que existem duas variantes diferentes dessa ferramenta? Sim, essas são egrep e fgrep. Neste tutorial, discutiremos a última (fgrep) usando exemplos fáceis de entender. Mas antes de fazermos isso, vale a pena mencionar que todos os exemplos e instruções mencionados neste tutorial foram testados no Ubuntu 16.04LTS.

Comando fgrep do Linux

Se você der uma olhada na documentação oficial, a página do manual para o comando grep diz que fgrep não é nada além de grep -F. Também diz que variantes como fgrep e egrep são fornecidas apenas para compatibilidade retroativa. Abordaremos esses detalhes mais adiante neste tutorial.

Enquanto isso, aqui está a sintaxe do fgrep (que é a mesma do grep):

grep [OPTIONS] PATTERN [FILE...]

E aqui está como a página do manual do comando grep explica a ferramenta:

grep searches the named input FILEs for lines containing a match to the given PATTERN. If no files   
are specified, or if the file “-” is given, grep searches standard input. By default, grep prints   
the matching lines.

Os seguintes exemplos em formato de perguntas e respostas devem lhe dar uma ideia melhor de como o fgrep funciona.

Q1. Como o fgrep é diferente do grep e do egrep?

O comando fgrep difere tanto do grep quanto do egrep no sentido de que interpreta PATTERN como uma lista de strings fixas (em vez de expressões regulares), separadas por quebras de linha.

Como se diz que é o mesmo que grep -F, aqui está como um especialista explicou a opção -F do grep no StackExchange:

The `-F` switch switches grep into a different mode where it accepts a pattern to match, but then   
splits that pattern up into one search string per line and does an OR search on any of the strings   
without doing any special pattern matching.

Q2. Como usar fgrep?

Para entender o uso do fgrep, vamos primeiro pegar um exemplo básico. Suponha que há um arquivo (file1) que contém o seguinte conteúdo:

E há outro arquivo (words.txt) que contém uma lista de palavras que queremos pesquisar em file1.

Então aqui está como você pode usar fgrep para realizar essa pesquisa:

fgrep -f words.txt file1

Então você pode ver que as palavras encontradas foram destacadas em vermelho. Agora alguns de vocês podem argumentar que é isso que grep e egrep também fariam neste caso, então como o fgrep difere?

Primeiramente, sim, você está certo. O comando grep e egrep também produziria uma saída semelhante:

Mas a diferença ficará clara caso file1 e words.txt contenham os seguintes conteúdos (observe os caracteres especiais dentro das palavras):

Aqui, egrep e grep falharão em encontrar todas as palavras:

Mas fgrep funcionará como pretendido:

Q3. Não há realmente diferença entre fgrep e grep?

De acordo com a documentação oficial, não há diferença entre fgrep e o comando grep -F. No entanto, há supostamente uma grande diferença entre as duas ferramentas: o algoritmo de correspondência de strings que elas usam. Enquanto fgrep usa o algoritmo Aho-Corasick, grep faz uso de uma versão modificada de Commentz-Walter.

“Isso significa que grep tem uma complexidade de pior caso O(mn) enquanto fgrep é no pior caso O(m+n),” diz um especialista nos fóruns do StackExchange.

Conclusão

Como é evidente, o comando fgrep não é difícil de entender e usar. Quanto à diferença entre fgrep e grep -F, enquanto já notamos os pontos na Q3, achamos que essa questão não deve incomodar uma grande parte dos usuários. Caso você tenha dúvidas ou tenha uma pergunta relacionada ao fgrep, compartilhe isso conosco deixando um comentário abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.