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
Opções | Descrições |
---|---|
-E |
Interpreta o |
-i |
Pesquisa por |
-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 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
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
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 "
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
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 "