Precisa encontrar uma informação específica em arquivos de log ou em grandes volumes de texto, mas não sabe por onde começar ?
É nesse cenário que o comando grep se destaca, com ele você pode localizar palavras, expressões e padrões em segundos, tornando a análise de logs e fluxo de textos muito mais rápida.
Neste guia completo, você aprenderá a instalar o grep, entender seu funcionamento e realizar buscas com 20 exemplos práticos, que ajudarão a encontrar as informações que precisa com mais agilidade no linux.
Entendendo o comando grep
O grep (sigla para Global Regular Expression Print) é um comando que procura em arquivos ou fluxo de textos linhas que correspondam a um padrão de busca. Esses padrões podem ser uma string (cadeia de caracteres) ou expressões regulares.
Ao encontrar o padrão pesquisado em uma linha, o comando grep copia a linha para a saída padrão (o padrão é a tela) ou para outra saída que você tenha especificado.
Na grande maioria das distribuições Linux, a ferramenta já vem instalada por padrão. No entanto, caso precise instalá-la, utilize os comandos abaixo conforme sua distribuição:
Para instalar no Debian/Ubuntu e derivados:
apt update
apt install grep -yPara instalar no Red Hat / AlmaLinux / Rocky Linux / Fedora:
dnf install grep -yComo usar o comando grep ?
O programa grep é utilizado na interface de linha de comando, e para tirar o máximo de proveito é necessário saber sua sintaxe, que é:
grep [opções] “padrão_de_busca” arquivo.txtExplicação:
grep – Comando que faz a busca.
opções – Flags passadas para o comando grep que modificam seu comportamento.
padrão_de_busca – Informação que deve ser pesquisada no aquivo ou fluxo de texto.
arquivo – Localização do arquivo onde será feita a busca pelo grep linux.
Para tirar o máximo proveito nas buscas, você pode combinar opções. A tabela abaixo resume as flags mais utilizadas no grep linux:
| Opção | Descrição | Exemplo de uso |
|---|---|---|
| -r ou -R | Busca recursiva em todos os diretórios. | grep -r “root” /etc |
| -c | Mostra a quantidade total de linhas que coincidem com o padrão. | grep -c “404” access.log |
| -l | Exibe apenas os nomes dos arquivos que contêm o termo buscado. | grep -l “DB_PASS” .env |
| -E | Ativa expressões regulares estendidas. | grep -E ‘[0-9]{2}’ telefones.txt |
| -n | Exibe o número da linha correspondente no arquivo. | grep -n “db_function” index.py |
| -i | Ignora a diferença entre maiúsculas e minúsculas (case-insensitive). | grep -i “failed” system.log |
Se você deseja aprofundar suas habilidades no terminal e dominar outros utilitários essenciais, confira nosso guia completo sobre comandos Linux.
1. Localizando um termo simples em um arquivo
Buscar uma string exata em um arquivo específico é o uso mais básico e comum do grep. O exemplo a seguir mostra como pesquisar pela palavra “ERROR” no arquivo “/var/log/syslog“:
grep "ERROR" /var/log/syslog
Uso prático: Ideal para investigar rapidamente se um serviço gerou logs de erro em específico no sistema.
2. Ignorando letras MAIÚSCULAS e minúsculas
No exemplo prático anterior foi feita uma busca pela palavra “ERROR”, mas nem toda aplicação gera a palavra somente em MAIÚSCULO, pode ser gerada assim “error”.
E como o grep é case-sensitive, ou seja, diferencia letras MAIÚSCULAS de minúsculas, você pode utilizar a opção “-i” do comando grep para buscar e encontrar variações da mesma string, como: “Error”, “error” ou “ERROR”, veja o exemplo a seguir:
grep -i "error" /var/log/syslog.log
Outro exemplo, encontrar o padrão de busca “warning” em letras minúsculas e MAIÚSCULAS.
grep -i "warning" /var/log/nginx/error.logUso prático: A opção “-i” do grep é útil quando você não sabe exatamente como a aplicação formatou as mensagens de log.
3. Destacando o padrão de busca
As vezes existe muita informação em arquivos de logs do sistema que são retornados junto com o padrão de pesquisa, mas ao utilizar a opção “--color=auto” você realça o termo correspondente no terminal com cores.
grep -i --color=auto “upgrade” /var/log/dpkg.log
A imagem acima destaca na cor vermelho a palavra “upgrade” que é o padrão de pesquisa passado para o grep.
2º Exemplo:destacar a palavra “denied” pesquisada nos logs do sistema e visualizar as tentativas de acesso negadas:
grep --color=auto "denied" /var/log/auth.logUso prático: Melhora a visibilidade na análise visual dos logs do sistema.
4. Invertendo os resultados de uma busca
Para inverter a busca utilize a opção “-v”, assim, o grep exclui do resultado todas as linhas que contém o padrão de busca, é uma forma de você ocultar linhas indesejadas na análise.
Por exemplo, para excluir logs repetitivos da requisição “GET/status” em servidores web nginx, exibindo outras requisições.
grep -v "GET /status" /var/log/nginx/access.logVocê pode utilizar a opção “-v” do comando grep para checar quantas contas de usuário podem utilizar o sistema com um shell válido.
grep -v nologin /etc/passwd | grep -v false
Na prática, o comando filtra a saída removendo entradas que tem “nologin” e “false”.
5. Exibindo o número da linha nos resultados
Se trabalha desenvolvendo aplicações e precisa saber em qual linha do arquivo de configuração alterar uma variável, use a flag “-n” do grep, que inclui a numeração antes do conteúdo em cada linha que contém o padrão pesquisado.
grep -n "DB_PORT" /var/www/app/wp-config.php6. Pesquisando recursivamente em múltiplos diretórios
A opção “-r” do comando grep faz a pesquisa percorrer a pasta atual e suas subpastas. O exemplo a seguir busca pela string “SQL syntax error” em todos os arquivos de “/var/log/apps” e em seus subdiretórios.
grep -r "SQL syntax error" /var/log/apps/Outro exemplo, é pesquisar a palavra “failed” em todos os logs do sistema:
grep -r "failed" /var/log/
Uso prático: Útil quando os logs da aplicação são armazenados em arquivos que ficam em várias pastas.
7. Listando apenas os nomes dos arquivos encontrados
O comando grep tem a opção “-l” que omite o texto das linhas e exibe somente o caminho dos arquivos que contém o padrão de busca.
Por exemplo, ao trabalhar com servidores web apache ou nginx, você pode precisar localizar em quais Virtual Hosts contêm uma referência a um endereço IP.
grep -rl "192.168.1.50" /etcA opção “-r” também é usada para fazer uma busca recursiva.
8. Contando o número total de ocorrências de um termo
Em vez de listar todo o texto, a opção “-c” do grep retorna apenas o número total de linhas encontradas. Caso queira saber se o kernel linux gerou registros com erros graves, execute:
grep -c "CRITICAL" /var/log/kernel.logUso prático: Útil para métricas rápidas, por exemplo, saber a quantidade de falhas de login ou erros gerados por serviços do sistema.
Se quer visualizar somente a quantidade de contas de usuários com o login invalido “nologin” execute:
grep -c "/sbin/nologin" /etc/passwd
9. Buscando apenas por palavras completas
Ao utilizar o grep para pesquisar por “error” também é exibido “errors”, assim como, se for procurado pelo padrão “fail” pode ser mostrado “failed”. Isso acontece por que o padrão de busca existe na palavra.
Mas, caso queira filtrar exatamente pela palavra ou caractere especifico, utilize “-w” do comando grep, para evitar trazer palavras que apenas contêm o termo.
No exemplo a seguir é pesquisado exatamente por “http”, assim é removido outras linhas como “https”.
grep --color="auto" -w "http" /etc/services
A imagem acima mostra a pesquisa com e sem a opção “-w” do grep.
Outra forma prática de usar é pesquisar no arquivo “/etc/fstab” qual dispositivo armazena o conteúdo do diretório “/” do linux, execute:
grep -w "/" /etc/fstab
Uso prático: A opção “-w” é bem útil para evitar exibir termos semelhantes em arquivos do sistema.
10. Filtrando fluxo de informação com Pipe “|”
Outro uso comum é enviar um fluxo de dados através do caractere “|” PIPE para entrada padrão do comando grep, que faz a filtragem pela informação buscada.
ps aux | grep --color=auto "ssh"
Uso prático: Utilizado por administradores de sistemas para verificar se um processo específico está em execução.
11. Exibindo linhas antes da correspondência (Before)
O comando grep tem a opção “-B” (before) que recebe como valor a quantidade de linhas que será exibida antes do padrão de pesquisa que foi encontrado.
Essa opção é útil para analisar logs do sistema, você pode precisar buscar por uma informação específica mas também precisa visualizar os registros que vêm antes.
Exemplo, ao usar “-B 3” vai mostrar a linha encontrada e as 3 linhas anteriores a ela no arquivo.
journalctl | grep -i sda -B 3
Uso prático: Ajuda a entender o contexto e os eventos que antecederam um registro que contém o padrão de pesquisa.
12. Exibindo linhas após a correspondência (After)
Você pode querer visualizar as linhas que vêm após o padrão que está buscando nos logs, para isso utilize a opção “-A” (after) do grep. Por exemplo, ao analisar os logs usando o comando journalctl filtre as 5 linhas seguintes ao termo pesquisado.
journalctl | grep -i '\[sda\]' -A 5 --color=auto![Comando Grep: Aprenda com 20 exemplos práticos comando "journalctl | grep -i '\[sda\]' -A 5 --color=auto" executado no terminal do linux e a saída exibindo o padrão de busca encontrado e as 5 linhas posteriores.](https://dlncloud.com.br/wp-content/uploads/2026/08/Comando-grep-exemplos-praticos-opcao-after-1024x193.webp)
Foi utilizado o caractere “\” (barra invertida) para ser ignorado os colchetes, assim buscando “[sda]”, se não fosse utilizado a “\” o padrão de busca seria “s” ou “d” ou “a”.
13. Exibindo linhas ao redor do padrão de busca (Context)
Você pode substituir o uso conjunto das opções “-A” e “-B” por “-C” que exibe o número de linhas antes e depois do padrão buscado pelo grep.
Exemplo prático, pesquise por “failed” em “/var/log/auth.log” e utilize “-C 2” para combinar o comportamento das opções “-A” e “-B”, mostrando 2 linhas acima e 2 linhas abaixo.
grep --color=auto -C 2 "failed" /var/log/auth.log
Uso prático: Fornece um panorama completo no momento exato em que houve falha na autenticação.
14. Pesquisando utilizando expressões regulares
Para usar regex (expressão regular) com o comando grep para fazer filtros avançados, utilize a opção “-E”, incluindo o uso do operador OR “|” (PIPE) para pesquisar mais de um termo simultaneamente.
Para buscar por “error” ou “warning” ou “fail” no arquivo de log do kernel, e ao mesmo tempo ignorar o case-sensitive, execute o comando:
grep --color=auto -iE 'error|warning|fail' /var/log/kern.log
Outro exemplo prático é buscar nos logs de acesso do serviço nginx, registros com código http “404” ou “500” ou “502”.
grep -E "404|500|502" /var/log/nginx/access.logUso prático: Permite rastrear registros de erros diferentes na aplicação utilizando uma única linha de código.
15. Removendo linhas em branco e comentários de um arquivo
É possível combinar a opção “-v” com expressões regulares para limpar a visualização de um arquivo de configuração. No exemplo a seguir é removido da visualização as linhas que iniciam com o caractere “#” (cerquilha) ou linhas em branco (^$).
grep -v -E "^#|^.*#|^$" /etc/nginx/sites-available/default
Uso prático: Facilita a leitura das configurações ativas do serviço, ignorando linhas vazias e comentários.
16. Buscando em linhas que iniciam com um termo específico
Usando o caractere de âncora “^” (circunflexo), o filtro valida apenas o padrão pesquisado no começo da linha. Por exemplo, para saber se a configuração que autoriza login de root pelo ssh está comentada ou não:
grep -i "^permitrootlogin" /etc/ssh/sshd_configSe aparecer algum resultado na tela, significa que a configuração “PermitRootLogin” do ssh não está comentada e foi configurada.
Uso prático: usado para verificar rapidamente se existe uma configuração com o termo específico que não está comentada.
17. Como pesquisar linhas que terminam com um termo específico
O caractere “$” indica que a busca deve corresponder ao final exato da linha, por exemplo, para buscar somente por contas de usuários que usam o shell bash, execute:
grep --color=auto "bash$" /etc/passwd
Uso prático: Identifica quais usuários do sistema possuem o shell /bin/bash atribuído.
18. Buscando termos em arquivos compactados
Para trabalhar com arquivos comprimidos pelo gzip, utiliza-se a variante do grep chamada “zgrep” com a mesma sintaxe. Exemplo, para buscar o termo “timeout” no arquivo de log comprimido “syslog2.gz”:
zgrep -i "timeout" /var/log/syslog.2.gzOutra forma, é descomprimir o arquivo e enviar para saída padrão os registros e utilizar o “|” (PIPE) para enviar para entrada do comando grep:
gunzip -c /var/log/syslog.2.gz | grep ERRORUso prático: Permite investigar em arquivos de log antigos rotacionados sem a necessidade de descompactá-los em um novo arquivo.
19. Limitando o número de resultados retornados
Para limitar a quantidade de resultados encontrados do padrão pesquisado utilize a opção “-m” do grep, por exemplo, com “-m 2” o comando encerra a busca assim que encontra as 2 primeiras correspondências (no exemplo: 404).
grep --color=auto -m 2 "404" /var/log/nginx/access.log
Uso prático: Evita sobrecarregar o terminal quando você busca em arquivos gigantescos e precisa apenas de uma amostra rápida.
20. Pesquisando em arquivos com extensões específicas
Combinando as opções “-r” com “--include” você restringe a varredura recursiva apenas aos arquivos desejados. Por exemplo, caso queira verificar se os arquivos “.php” do wordpress contém algum código “eval(”.
grep -r --include="*.php" "eval(" /var/www/html/wordpressUso prático: Pode ser utilizado para varreduras de segurança em servidores web procurando por códigos ou scripts maliciosos.
Erros comuns e boas práticas ao usar o comando grep
Para evitar erros segue algumas dicas:
- Utilize aspas em pesquisas em que o padrão de busca tem espaços, exemplo: grep “erro fatal” service.log.
- Sempre rode o comando grep com usuário root ou com o comando sudo quando fizer buscas recursivas em diretórios administrativos, isso evitar erros de “Permissão negada”.
Entre as boas práticas é recomendado:
- Usar o grep com comandos de paginação (less ou more) para buscas que podem retornar um resultado extenso.
- Evite buscas recursivas profundas em horário de pico: Rodar “grep -r” em diretórios de armazenamento como “/var”, porque pode gerar consumo excessivo de I/O no disco e deixar o servidor lento.
Conclusão
Aprender a usar o comando grep é importante para filtrar informações através de shell script ou para analisar logs do sistema através da interface de linha de comando e solucionar problemas no servidor.
Pratique os exemplos apresentados e incorpore o grep linux na sua rotina diária, aos poucos, a combinação dessas opções se tornará um processo natural no seu fluxo de trabalho.
Para aprender mais sobre o grep recomendo a leitura da página de manual do projeto.
Ficou com alguma dúvida sobre os exemplos ou quer compartilhar uma dica extra ? Deixe seu comentário, sua participação é muito importante!
Perguntas Frequentes (FAQ) sobre o comando grep
Qual a diferença entre o comando grep e find ?
O comando grep faz pesquisas para encontrar padrões de busca em fluxo de texto ou arquivos. Já o comando find busca arquivos ou diretórios com base nos seus metadados (nomes, permissões, tamanho, data de modificação e etc).
O comando grep altera o arquivo original durante a busca ?
Não. O comando grep realiza apenas a leitura dos dados e exibe o resultado formatado no terminal, sem modificar o conteúdo do arquivo pesquisado.
Posso usar o grep no Windows ?
Sim. Você pode utilizar o utilitário através do WSL (Windows Subsystem for Linux) ou instalar a partir do Git Bash.
Como fazer o grep ignorar arquivos binários ?
Adicione a flag “-I” (I maiúsculo) ao comando. Isso instrui a ferramenta a ignorar processamento em arquivos binários, evitando que textos truncados poluam a saída do seu terminal.
Qual é a diferença entre o comando grep, egrep e fgrep ?
O grep padrão usa expressões regulares básicas. O egrep suporta expressões regulares estendidas (equivalente ao grep -E). O fgrep interpreta todos os caracteres como texto literal, desativando expressões regulares (equivalente ao grep -F).

