Base de Conhecimento

Comando grep: como buscar texto em arquivos na VPS

  • grep, linux, vps, terminal, logs, busca
  • Usuários acharam útil: 0

Aprenda o comando grep na VPS: a sintaxe, as opções do dia a dia, a busca em pastas, o contexto das linhas, o grep com pipe em logs e processos e os códigos de saída.

Por Redação Eleven Host · @robson.direitodigital · 30 de outubro de 2026 · 8 min de leitura

Arte da Eleven Host: janela de terminal com o título: Comando grep: como buscar texto em arquivos na VPS

Capa da Redação Eleven Host para o guia: Comando grep: como buscar texto em arquivos na VPS Arte: Eleven Host

O comando grep procura um texto dentro de arquivos e mostra as linhas que combinam com ele. A forma mais simples é grep "texto" arquivo. Este guia mostra a sintaxe, as opções do dia a dia, a busca em pastas e o grep com pipe.

Como o grep funciona

Quem administra uma VPS por SSH pode precisar achar uma mensagem num log ou uma configuração num arquivo. É para isso que o grep serve. Segundo a página de manual, a forma geral é grep [OPÇÃO]... PADRÕES [ARQUIVO]...: você escreve as opções, o padrão que quer achar e os arquivos onde procurar. Um exemplo, com um nome de arquivo fictício:

grep "erro" arquivo.log

O comando imprime cada linha de arquivo.log que contém a palavra erro. Linhas que não combinam ficam de fora.

Se você não indicar arquivo, o comportamento depende do tipo de busca. A página de manual diz que a busca recursiva olha a pasta atual e que a busca não recursiva lê a entrada padrão, que é o que chega por um pipe. Essa segunda parte aparece mais adiante, no grep com pipe.

O grep mostra linhas inteiras. Para ver só o pedaço que combinou, existe a opção -o.

Opções do dia a dia: -i, -n, -v, -w e -c

As opções vão antes do padrão e mudam o que o grep procura ou o que ele mostra. Estas são as que mais aparecem nos exemplos deste guia:

  • -i: ignora diferença entre maiúsculas e minúsculas, tanto no padrão quanto no texto.
  • -n: escreve o número da linha antes de cada resultado, começando em 1.
  • -v: inverte a busca e mostra as linhas que NÃO combinam.
  • -w: aceita só linhas em que o texto aparece como palavra inteira.
  • -c: em vez das linhas, mostra quantas linhas combinam, por arquivo.
  • -l: mostra só o nome dos arquivos que têm o texto. O -L faz o contrário e mostra os arquivos que não têm.

Veja cada uma em um exemplo. Os caminhos e os textos são fictícios:

grep -i "warning" /var/log/syslog

grep -v "^#" /etc/ssh/sshd_config

grep -w "root" /etc/passwd

grep -c "404" access.log

O primeiro acha warning em maiúsculas, minúsculas ou misturadas. O segundo mostra as linhas do arquivo de configuração do SSH que não combinam com ^#. O terceiro procura root como palavra inteira. O quarto conta quantas linhas de access.log têm 404.

Mais algumas opções

  • -o: mostra só o pedaço que combinou, um por linha.
  • -q: não escreve nada na tela. Serve para quando só interessa o código de saída, explicado mais abaixo.
  • -s: esconde as mensagens de erro sobre arquivo inexistente ou sem permissão de leitura.
  • -H e -h: mostram ou escondem o nome do arquivo em cada resultado.
  • -e PADRÃO: pode ser repetida para buscar vários padrões. Também protege um padrão que começa com hífen.
  • -F: trata o padrão como texto fixo, e não como expressão regular.

Para destacar o texto encontrado, use --color. Ela aceita never, always ou auto, e as cores vêm da variável GREP_COLORS:

grep --color=auto "GET" access.log

Buscar em pastas: -r, -R e --include

Com a opção -r, o grep lê todos os arquivos da pasta indicada e das pastas dentro dela. A -R faz a mesma busca, mas segue todos os links simbólicos. Com a -r, só os links simbólicos passados na linha de comando são seguidos. Por isso as duas opções não são sinônimos.

Um exemplo é procurar onde um nome de configuração aparece num site, mostrando também o número da linha:

grep -rn "DB_PASSWORD" /var/www/site

Dá para limitar a busca a certos arquivos. A opção --include=GLOB procura só nos arquivos cujo nome combina com o padrão, como *.php. Já --exclude=GLOB pula arquivos, e --exclude-dir=GLOB pula pastas. Se um --include e um --exclude se contradisserem, vale o último que combina. Juntando com o -l, o comando abaixo lista só os arquivos .php que têm o texto:

grep -rl --include="*.php" "eval(" /var/www/site

Para trocar permissões de arquivos achados desse jeito, o guia chmod: como mudar permissões de arquivos na VPS explica o comando chmod e seus modos.

Está escolhendo uma VPS? O Plano Bronze da VPS sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Ver planos de VPS

Ver o contexto: -A, -B e -C

Às vezes a linha que combinou não mostra o suficiente, e é preciso ver o que veio antes ou depois dela. Para isso existem três opções, que recebem um número de linhas:

  • -A NUM: mostra NUM linhas depois de cada resultado.
  • -B NUM: mostra NUM linhas antes.
  • -C NUM: mostra NUM linhas antes e depois.

grep -C 3 "Fatal error" error.log

No exemplo, cada ocorrência de Fatal error aparece com três linhas antes e três depois.

grep com pipe: logs e processos

O pipe, o símbolo |, manda a saída de um comando para a entrada de outro. Como o grep sem arquivo lê a entrada padrão, ele pode filtrar a saída de outro comando. Um caso é o de logs de um serviço do systemd. O guia journalctl: como ver os logs do sistema na VPS explica o journalctl, e a saída dele pode passar pelo grep:

journalctl -u nginx --since "1 hour ago" --no-pager | grep -i error

O -u escolhe a unidade do serviço, o --since filtra por data e o --no-pager evita o paginador. O nginx é só um exemplo de serviço. O próprio journalctl também filtra a mensagem com -g ou --grep, que usa expressão regular. Segundo a página de manual, se o padrão estiver todo em minúsculas, a busca ignora maiúsculas e minúsculas:

journalctl -u nginx -g "error"

Procurar um processo

O comando ps lista processos. A página de manual descreve ps ax e ps axu na sintaxe BSD, e o u pede um formato orientado ao usuário. Com o grep, dá para achar a linha de um programa:

ps aux | grep nginx

Para olhar o uso de memória da VPS, o guia Ver uso de memória no Linux: free, top e htop na VPS mostra outros comandos para isso.

Expressões regulares básicas com -E

Com a opção -E, o grep usa expressões regulares estendidas. Um uso é buscar várias palavras de uma vez, separadas por |:

grep -E "erro|falha|timeout" app.log

Esse comando mostra as linhas de app.log que tenham erro, falha ou timeout. Também dá para repetir a opção -e, uma para cada padrão. Já o -F trata o padrão como texto fixo, e não como expressão regular.

Sobre nomes antigos: egrep, fgrep e rgrep equivalem a grep -E, grep -F e grep -r. A página de manual diz que essas variantes estão obsoletas no projeto original e que o Debian as mantém por compatibilidade. A recomendação é usar o grep com a opção.

Códigos de saída do grep

Em scripts, o que importa às vezes não é a linha, e sim se o texto foi achado. Segundo a página de manual, o código de saída normal é 0 se alguma linha foi selecionada, 1 se nenhuma foi e 2 se ocorreu um erro. Com a opção -q, se o grep achar algo, ele sai com 0 mesmo que tenha havido erro.

Dá para usar isso com o && do shell:

grep -q "pronto" status.txt && echo "achou"

Se status.txt tiver a palavra pronto, o comando escreve achou. Se não tiver, não escreve nada.

Comandos para guardar

  • grep "texto" arquivo: mostra as linhas que têm o texto.
  • grep -i: ignora maiúsculas e minúsculas.
  • grep -n: mostra o número da linha.
  • grep -v: mostra as linhas que não combinam.
  • grep -w: só palavra inteira.
  • grep -c: conta as linhas.
  • grep -rl --include="*.php" "texto" pasta: lista os arquivos de uma pasta que têm o texto.
  • grep -C 3 "texto" arquivo: mostra três linhas antes e depois.
  • grep -E "a|b|c" arquivo: busca uma das alternativas.
  • comando | grep -i texto: filtra a saída de outro comando.
  • grep -q: usa só o código de saída: 0 achou, 1 não achou, 2 erro.

Quer conhecer a VPS da Eleven Host? O Plano Bronze da VPS sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Conhecer a VPS

Perguntas frequentes

Para que serve o comando grep?

Procura um texto dentro de arquivos e mostra as linhas que combinam. Sem arquivo, a busca não recursiva lê a entrada padrão, o que permite filtrar a saída de outros comandos por pipe.

Como o grep ignora maiúsculas e minúsculas?

Com a opção -i, que ignora a diferença no padrão e no texto.

Como buscar em todos os arquivos de uma pasta?

Use -r, como em grep -rn "texto" /var/www/site. Para limitar a certos arquivos, acrescente --include="*.php".

Como ver as linhas antes e depois do resultado?

Use -B para as anteriores, -A para as seguintes ou -C para as duas, cada uma com o número de linhas.

O que significa o código de saída 1 do grep?

Que nenhuma linha foi selecionada. O 0 indica que alguma linha combinou, e o 2 indica erro.

Esta resposta lhe foi útil?

Artigos Relacionados