Comando Grep no Linux: sintaxe, opções, exemplos e mais

Como um administrador de sistema em um sistema Linux, você pode ter que analisar um enorme arquivo de log no Linux. Pode parecer uma tarefa meticulosa, especialmente nos casos em que você precisa combinar padrões. Felizmente, o comando grep no Linux é uma benção para tais situações. Se você está se perguntando o que é o comando grep e como ele funciona, abaixo, preparamos um guia fácil para ajudá-lo a entender este comando útil do Linux . Índice

O que é o comando grep no Linux

O comando grep é uma poderosa ferramenta de linha de comando no Linux usada para pesquisar e filtrar padrões ou strings específicos em um arquivo, diretório ou até mesmo na saída de outros comandos. Você pode estar se perguntando sobre seu nome incomum; bem, significa “Global Regular Expression Print”. Foi introduzido pela primeira vez por Ken Thompson em 1973 para o sistema operacional Unix. Com sua versatilidade e facilidade de uso, o comando grep é uma ferramenta obrigatória no arsenal de todos os usuários do Linux.

Geralmente, o comando grep vem pré-instalado na maioria das distribuições Linux , mas se você achar que está faltando em seu sistema, instale-o usando os seguintes comandos:

  • Instalar em sistemas baseados em Debian:

sudo apt install grep

  • Instale em sistemas baseados no Fedora:

sudo yum install grep

  • Instalar em sistemas baseados em Arch:

sudo pacman -S grep

Comando Linux Grep: Sintaxe e Opções

Usar o comando grep no Linux é bastante direto, graças à sua sintaxe simples e às várias opções para brincar. A sintaxe para usar o comando grep é:

grep

Na sintaxe acima, substitua o pelo padrão que deseja pesquisar e, na parte , substitua-o pelo arquivo/diretório no qual deseja pesquisar. diferentes opções com as quais você pode trabalhar, incluindo:

Opções Descrições
-E Interpreta o como expressões regulares.
-i Pesquisa por e ignora maiúsculas e minúsculas.
-v Mostra as linhas que não correspondem ao
-c Conta o número de linhas correspondentes.
--color Mostra os resultados em saída colorida.

Como usar o comando Grep no Linux

Usar o comando grep é fácil e segue uma sintaxe simples. Tudo o que você precisa fazer é fornecer o nome do arquivo ou diretório que deseja pesquisar e o padrão que deseja corresponder. Para o padrão, você pode usar as palavras exatas ou expressões regulares. Você deve estar se perguntando – o que é “expressão regular” aqui? Expressões regulares são strings especiais que são interpretadas de maneira diferente quando usadas em áreas específicas. Eles são substituídos por todas as combinações possíveis correspondentes ao padrão.

Digamos, por exemplo, que você deseja corresponder endereços de e-mail, você pode usar o regex “ (.+)@(.+)n “. Parece complicado? Vamos quebrar isso:

  • (.+) corresponde a todos os caracteres, exceto novas linhas
  • @ verifica se o símbolo “@” está presente na frase dada.

Agora que você sabe o que são expressões regulares e como funciona o comando grep, vamos ver agora como usar o comando grep no Linux.

Pesquisar strings em arquivos com o comando grep

A maneira mais comum de usar o grep é procurar strings específicas em um arquivo. A sintaxe básica para pesquisar com o comando grep em arquivos é:

grep

Na parte , você precisa fornecer a string exata que deseja pesquisar. Por exemplo, se você deseja pesquisar a string “mango” dentro do arquivo chamado fruits.txt , use este comando:

grep "mango" fruits.txt

Se você deseja pesquisar ignorando o caso, use o sinalizador -i com o comando grep para o exemplo acima:

grep -i "mango" fruits.txt

Pesquise em vários arquivos com grep

Com o comando grep, você pode pesquisar não apenas em um único arquivo, mas também em vários arquivos. Esse recurso se torna particularmente útil quando você precisa passar por vários arquivos grandes. A sintaxe para pesquisar strings/padrões em vários arquivos com o comando grep é:

grep

Por exemplo, se você deseja pesquisar a string “aluno”, dentro dos arquivos “aluno1.txt” e “aluno2.txt”, use este comando:

grep "John" student1.txt student2.txt

Pesquisar todos os arquivos em um diretório com grep

Suponha que você precise procurar uma string e não se lembre do nome do arquivo onde ela existe. Obviamente, você pode escrever todos os nomes de arquivos presentes no diretório, mas, em vez disso, pode usar simplesmente o caractere curinga “ * ” como mostrado:

grep "pattern_to_search" *

Por exemplo, se você deseja pesquisar a string “apple” em todos os arquivos presentes no diretório, use este comando:

grep "apple" *

Se você deseja pesquisar apenas em tipos de arquivo específicos, use esta sintaxe:

grep "pattern_to_search" *.

Por exemplo, se você deseja pesquisar a palavra “manga” apenas em arquivos .txt, use este comando:

grep "mango" *.txt

Usando expressões regulares com grep

A principal vantagem de usar o comando grep sobre outras ferramentas/comandos é a capacidade de processar expressões regulares para pesquisar conteúdo. Basta incluir o sinalizador -e com o comando grep para pesquisar usando expressões regulares:

grep -e

Por exemplo, se você deseja filtrar IDs de e-mail, use este comando:

grep -e "(.+)@(.+)" emails.txt

Pesquise várias palavras-chave usando o comando grep

Até agora, você deve estar confortável procurando por alguns padrões ou palavras usando grep. Mas, e se você precisar pesquisar várias palavras/padrões? Bem, grep tem cobertura para isso também. Para pesquisar várias palavras usando o comando grep, use esta sintaxe:

grep "|" filename

Aqui, o | especifica grep para imprimir o resultado se qualquer uma das duas consultas corresponder. Por exemplo, se você deseja pesquisar as palavras “apple” e “mango” no arquivo “fruits.txt”, use este comando:

grep "apple|mango" fruits.txt

Contagem de resultados correspondentes usando o comando grep

Às vezes, você pode precisar saber o número de resultados correspondentes. Para isso, você pode usar o sinalizador -c com o comando grep:

grep -c "pattern_to_search" filename

Por exemplo, se você precisar ver quantos IDs de e-mail existem no arquivo student1.txt , use este comando:

grep -E -c "(.+)@(.+)" student1.txt

Se você quiser ver o número de linhas que não correspondem à consulta de pesquisa, basta adicionar o sinalizador -v junto com -c:

grep -v -E -c "(.+)@(.+)" student1.txt

Usando o Comando grep com Shell Pipes

A maneira como os shell pipes funcionam no Linux é enviar a saída de um comando para outro comando como entrada. A sintaxe básica para usar shell pipes é:

first_command | second_command

Com shell pipes, filtrar alguma saída de comando com o comando grep torna-se muito mais fácil, em vez de rolar constantemente e procurar por algo. Para filtrar uma palavra ou padrão específico de uma saída de comando específica, simplesmente substitua na sintaxe acima pelo comando e adicione o segundo comando com a sintaxe do comando grep. Veja como funciona:

first_command | grep

Por exemplo, se você quiser ver quantas vezes o comando gcc foi executado anteriormente, você pode usar este comando:

history | grep gcc

Isso mostrará apenas os resultados contendo a palavra “gcc”, conforme mostrado na figura abaixo.

Usando o comando grep no Linux

O comando grep é uma ferramenta essencial para usuários que desejam pesquisar padrões ou palavras específicas em vários arquivos, diretórios ou até mesmo em outras saídas de comando do Linux. Depois de obter todas as opções e sintaxe essenciais, o comando grep pode ajudá-lo a aumentar exponencialmente sua produtividade. Enquanto estiver aqui, confira os novos recursos do Ubuntu 23.04 .

Perguntas frequentes sobre o comando Grep no Linux O comando grep diferencia maiúsculas de minúsculas ao pesquisar padrões?

Por padrão, o grep funciona com distinção entre maiúsculas e minúsculas. Mas, se você precisar pesquisar ignorando o caso, use o sinalizador -i.

Como posso pesquisar em arquivos compactados?

Zgrep, uma versão modificada do grep pode ser usada para pesquisar em arquivos compactados. A sintaxe para pesquisar em arquivos compactados usando o comando zgrep é: zgrep ""

Scroll to Top