Skip to main content

Exemplo de uso do comando grep do Linux

Aula Sobre o Comando GREP #LINUX (Junho 2026)

Aula Sobre o Comando GREP #LINUX (Junho 2026)
Anonim

O comando grep do Linux é usado como um método para filtragem de entrada. GREP significa Global Regular Expression Printer e, portanto, para usá-lo efetivamente, você deve ter algum conhecimento sobre expressões regulares.

Neste artigo, você aprenderá vários exemplos que ajudarão você a entender o comando grep.

01 de 09

Como procurar por uma seqüência de caracteres em um arquivo usando o GREP

Imagine que você tenha um arquivo de texto chamado livros com os seguintes títulos de livros infantis:

  • Robin Hood
  • Chapeuzinho Vermelho
  • Peter Pan
  • Cachinhos Dourados E Os Três Ursos
  • Branca de Neve e os Sete Anões
  • Pinnochio
  • O gato no chapéu
  • Os três Porquinhos
  • O gruffalo
  • Charlie e a fabrica de chocolate

Para encontrar todos os livros com a palavra "O" no título, use a seguinte sintaxe:

grep Os livros

Os seguintes resultados serão retornados:

  • Cachinhos Dourados E Os Três Ursos
  • Branca de Neve e os Sete Anões
  • O gato no chapéu
  • Os três Porquinhos
  • O gruffalo
  • Charlie e a fabrica de chocolate

Em cada caso, a palavra "The" será destacada.

A pesquisa faz distinção entre maiúsculas e minúsculas, portanto, se um dos títulos tiver "o" em vez de "O", ele não teria sido retornado.

Para ignorar o caso, você pode adicionar a seguinte opção:

grep os livros --ignore-case

Você também pode usar a opção -i da seguinte maneira:

grep -i os livros

Continue lendo abaixo

02 de 09

Pesquisar por uma seqüência de caracteres em um arquivo usando curingas

O comando grep é muito poderoso. Você pode usar várias técnicas de correspondência de padrões para filtrar os resultados.

Neste exemplo, mostrarei como pesquisar uma string em um arquivo usando curingas.

Imagine que você tenha um arquivo chamado places com os seguintes nomes de local escocês:

aberdeenaberystwythaberlourinvertebradoinvernessNewburghveado novoGalloway novoGlasgowEdimburgo

Se você quiser encontrar todos os lugares com inver no nome use a seguinte sintaxe:

grep inverter * lugares

O curinga asterisco (*) significa 0 ou muitos. Portanto, se você tiver um lugar chamado inver ou um lugar chamado Inverness, ambos serão retornados.

Outro curinga que você pode usar é o ponto (.). Você pode usar isso para corresponder a uma única letra.

grep inver.

O comando acima encontraria lugares chamados inverurie e inverary mas não encontraria inverseerie porque só pode haver um wildcard entre os dois rs como denotado pelo único período.

O curinga de período é útil, mas pode causar problemas se você tiver um como parte do texto que está pesquisando.

Por exemplo, olhe para esta lista de nomes de domínio

  • linux.about.com
  • pcsupport.about.com
  • mp3.about.com
  • minecraft.about.com
  • androidgames.about.com
  • netforbeginners.about.com
  • everydaylinuxuser.com
  • google.co.uk
  • google.au
  • direct.gov.uk

Para encontrar todas as informações sobre .coms, basta pesquisar usando a seguinte sintaxe:

grep * sobre * domainnames

O comando acima cairia se a lista contivesse o seguinte nome:

  • everydaylinuxuser.com/about.html

Você poderia, portanto, tentar a seguinte sintaxe:

grep * about.com domainnames

Isso funcionaria bem, a menos que houvesse um domínio com o seguinte nome:

aboutycom.com

Para realmente procurar o termo about.com, você precisaria escapar do ponto da seguinte forma:

grep * about .com nomes de domínio

O curinga final para mostrar a você é o ponto de interrogação que significa zero ou um caractere.

Por exemplo:

grep? ber placenames

O comando acima retornaria aberdeen, aberystwyth ou até berwick.

Continue lendo abaixo

03 de 09

Pesquisar por seqüências de caracteres no início e final da linha usando grep

O símbolo de quilate (^) e de dólar ($) permite pesquisar padrões no início e no final das linhas.

Imagine que você tenha um arquivo chamado futebol com os seguintes nomes de equipe:

  • Blackpool
  • Liverpool
  • Cidade de Manchester
  • Leicester City
  • Manchester United
  • Newcastle United
  • FC United de Manchester

Se você quiser encontrar todas as equipes que começaram com Manchester, use a seguinte sintaxe:

grep ^ equipes de Manchester

O comando acima retornaria o Manchester City e o Manchester United, mas não o FC United of Manchester.

Como alternativa, você pode encontrar todas as equipes que terminam com o United usando a seguinte sintaxe:

grep United $ teams

O comando acima retornaria ao Manchester United e Newcastle United, mas não ao FC United of Manchester.

04 de 09

Contando o número de partidas usando o grep

Se você não quiser retornar as linhas reais que correspondem a um padrão usando o grep, mas você só quer saber quantas você pode usar a seguinte sintaxe:

grep -c inputfile padrão

Se o padrão fosse correspondido duas vezes, o número 2 seria retornado.

Continue lendo abaixo

05 de 09

Encontrando todos os termos que não combinam usando o grep

Imagine que você tenha uma lista de nomes de lugares com os países listados da seguinte maneira:

  • aberdeen Scotland
  • glasgow Scotland
  • liverpool Inglaterra
  • Baía de colwyn
  • Londres, Inglaterra

Você deve ter notado que o colwyn bay não possui nenhum país associado a ele.

Para pesquisar todos os lugares com um país, você pode usar a seguinte sintaxe:

grep land $ lugares

Os retornos dos resultados seriam todos os lugares, exceto o colwyn bay.

Isso obviamente funciona apenas para lugares que terminam em terra (dificilmente científicos).

Você pode inverter a seleção usando a seguinte sintaxe:

grep -v land $ lugares

Isso encontraria todos os lugares que não terminassem com a terra.

06 de 09

Como encontrar linhas vazias em arquivos usando o grep

Imagine que você tenha um arquivo de entrada usado por um aplicativo de terceiros que pára de ler o arquivo quando encontra uma linha vazia da seguinte maneira:

  • aberdeen escócia
  • Escócia do inverness
  • liverpool inglaterra
  • colwyn bay wales

Quando o aplicativo chegar à linha após o liverpool, ele parará de ler, o que significa que a Baía de colwyn está totalmente perdida.

Você pode usar o grep para procurar linhas em branco com a seguinte sintaxe:

grep ^ $ places

Infelizmente isso não é particularmente útil porque apenas retorna as linhas em branco.

É claro que você pode obter uma contagem do número de linhas em branco como uma verificação para ver se o arquivo é válido da seguinte forma:

grep -c ^ $ places

No entanto, seria mais útil saber os números de linha que possuem uma linha em branco para que você possa substituí-los. Você pode fazer isso com o seguinte comando:

grep -n ^ $ places

Continue lendo abaixo

07 de 09

Como procurar por seqüências de caracteres maiúsculos ou minúsculos usando grep

Usando o grep, você pode determinar quais linhas em um arquivo têm caracteres maiúsculos usando a seguinte sintaxe:

grep 'A-Z' nome do arquivo

Os colchetes permitem determinar o intervalo de caracteres. No exemplo acima, ele corresponde a qualquer caractere que esteja entre A e Z.

Portanto, para corresponder aos caracteres minúsculos, você pode usar a seguinte sintaxe:

grep 'a-z' nome do arquivo

Se você quiser corresponder apenas letras e não números ou outros símbolos, use a seguinte sintaxe:

grep 'a-zA-Z' nome do arquivo

Você pode fazer o mesmo com números da seguinte maneira:

grep '0-9' nome do arquivo 08 de 09

Procurando por padrões repetidos usando o grep

Você pode usar chaves {} para procurar um padrão de repetição.

Imagine que você tenha um arquivo com números de telefone da seguinte maneira:

  • 055-1234
  • 055-4567
  • 555-1545
  • 444-0167
  • 444-0854
  • 4549-2234
  • x44-1234

Você sabe que a primeira parte do número precisa ter três dígitos e você deseja encontrar as linhas que não correspondem a esse padrão.

Do exemplo anterior, você sabe que 0-9 retorna todos os números em um arquivo.

Neste exemplo, queremos as linhas que começam com três números seguidos por um hífen (-). Você pode fazer isso com a seguinte sintaxe:

grep "^ 0-9 0-9 0-9 -" números

Como sabemos de exemplos anteriores, o quilate (^) significa que a linha deve começar com o seguinte padrão.

O 0-9 irá procurar por qualquer número entre 0 e 9. Como isso é incluído três vezes, ele corresponde a 3 números. Finalmente, há um hífen para indicar que um hífen deve ter sucesso nos três números.

Usando as chaves, você pode diminuir a pesquisa da seguinte maneira:

grep "^ 0-9 {3 } -" números

A barra escapa do {colchete para que ele funcione como parte da expressão regular, mas em essência o que isso está dizendo é 0-9 {3}, o que significa qualquer número entre 0 e 9 três vezes.

As chaves também podem ser usadas da seguinte maneira:

{5,10}{5,}

O {5,10} significa que o personagem que está sendo procurado deve ser repetido pelo menos 5 vezes, mas não mais que 10, enquanto o {5} significa que o personagem deve ser repetido pelo menos 5 vezes, mas pode ser mais do que isso.

Continue lendo abaixo

09 de 09

Usando a saída de outros comandos usando o grep

Até agora, examinamos a correspondência de padrões em arquivos individuais, mas o grep pode usar a saída de outros comandos como a entrada para correspondência de padrões.

Um ótimo exemplo disso é usar o comando ps, que lista os processos ativos.

Por exemplo, execute o seguinte comando:

ps -ef

Todos os processos em execução no seu sistema serão exibidos.

Você pode usar o grep para procurar um processo em execução específico da seguinte maneira:

ps -ef | grep firefox

Resumo

O comando grep é um comando fundamental do Linux e vale muito a pena aprender, pois facilitará muito a sua vida ao procurar arquivos e processos ao usar o terminal.