Notícias
Lançamento de um novo serviço: Video on Demand (VoD) já disponível no painel de controle!
Serverspace Black Friday
RP
October 2, 2024
Atualizado October 2, 2024

Como usar o Grep no Linux?

AD

Para trabalhar com distribuições Linux, você principalmente utiliza o terminal ou console, que exigem conhecimento de comandos básicos para trabalhar plenamente com o ambiente. Para quase toda tarefa existe uma utilidade que executa funções predefinidas. A busca por arquivos e padrões de texto neles não é exceção. As duas principais utilidades que ganharam popularidade e ainda são usadas hoje em dia são find e grep. Se o find é usado apenas para encontrar o caminho de arquivos pelas suas propriedades, então o grep realiza, além disso, uma busca pelo conteúdo dos arquivos. Neste artigo, vamos examinar sua sintaxe, principais opções e exemplos de uso!

O que é o GREP e como posso encontrá-lo?

Como mencionado acima, o GREP é uma utilidade multifuncional do Linux para busca de arquivos e textos usando padrões, expressões regulares.

As expressões regulares (regexp) são um mecanismo para buscar informações de acordo com padrões e regras predefinidos.

Em geral, muitas distribuições já possuem esse pacote pré-instalado. Para verificar se ele está disponível na sua máquina, insira o comando:

grep
check-installation
Screenshot 1 — Verificação da instalação

Se a saída se parecer com esta, então o pacote já está instalado; caso contrário, instale-o por meio do seu gerenciador de pacotes. Para Ubuntu, Debian e sistemas apt-like:

apt update && apt upgrade && apt install grep

Para sistemas RPM-like, o comando para instalar um pacote com suas dependências pode ser assim:

dnf update && dnf upgrade && dnf install grep

Depois de garantir que o pacote foi instalado, vamos analisar a sintaxe da utilidade e suas opções!

Sintaxe e opções

O comando grep é utilizado para buscas, assim como as opções básicas que formam a sintaxe do comando:

grep [options] [pattern] [path to file]

Para uma busca simples de um padrão em um arquivo, usamos o comando:

grep 'named Alex' /home/kk.txt
first_query-2048x169
Screenshot 2 — Busca em um arquivo

No arquivo dado, o padrão solicitado foi encontrado e destacado, neste caso utilizando apenas os dois blocos de sintaxe básicos [pattern] e [path to file] sem [options]. Mas e se precisarmos realizar uma busca mais complexa com várias condições? Existe uma lista completa de opções [options] para isso, vamos analisar as principais e dar exemplos de uso:

Configuração de mapeamento de padrões:
- E, --extended-regexp: Expressões regulares estendidas para padrões;
- G, --basic-regexp: Expressões regulares básicas para padrões;
- P, --perl-regexp: Uso de expressões regulares Perl.

Fontes de padrões:
- e, --regexp=[pattern]: Permite especificar um padrão diretamente;
- f, --file=[file]: Permite especificar o padrão diretamente.

Controle de maiúsculas e minúsculas:
- i, --ignore-case: Busca ignorando a diferenciação entre maiúsculas e minúsculas;
--no-ignore-case: Busca sensível a maiúsculas e minúsculas, comportamento padrão.

Modos especiais de correspondência:
- w, --word-regexp: Considera apenas palavras inteiras ao buscar;
- x, --line-regexp: Apenas corresponde a linhas inteiras.

Terminação alternativa de strings:
- z, --null-data: Trata o fim de uma linha como um byte nulo em vez de um caractere de nova linha.

Todos esses grupos de opções se referem à configuração da maneira como o padrão é mapeado em um conjunto de dados. Para uma busca um pouco mais complexa do que no primeiro exemplo, usaremos expressões regulares comuns. As outras opções não serão necessárias agora. Vamos especificar o mesmo padrão:

grep -e 'named Alex' /home/kk.txt
full_word-2048x166
Screenshot 3 — Busca de palavra inteira

Existem duas ocorrências de Alex e Alex's parents no texto. A essência do funcionamento das expressões regulares é que elas dividem os dados em caracteres e procuram padrões. Portanto, ao buscar com grep -e 'nome Alex' /home/kk.txt, haverá duas correspondências: Alex e Alex's parents. Como encontrar uma palavra ou string específica para que outros valores não sejam capturados? Para isso, usamos a opção -w, que permite dividir frases por palavras, não por caracteres:

grep -w -e 'Alex' /home/kk.txt
regexp-2048x165
Screenshot 4 — Filtro com expressões regulares

Como você pode ver no exemplo, a palavra Alex's não foi destacada, pois a divisão foi feita palavra por palavra.

Busca recursiva com grep

Mas e se houver mais de um arquivo e você precisar verificar vários arquivos no mesmo diretório? Para isso, o grep possui a opção -r, que permite definir uma pasta para buscar em seu conteúdo. Vamos implementar a consulta de nosso nome de usuário nos logs:

grep -r "ghn" /var/log
log-2048x315
Screenshot 5 — Busca em logs

Todos os passos no tutorial podem ser realizados em servidores na nuvem poderosos. A Serverspace fornece servidores VPS isolados para uso comum e virtualizado.

create-server-1
Screenshot №6 — Criando Servidor

Levará algum tempo para implantar a capacidade do servidor. Após isso, você pode se conectar de qualquer maneira conveniente!

Filtrando a saída de comandos

Muito frequentemente, no Linux, a saída dos comandos no terminal é grande ou contém muitas informações desnecessárias. Para isso, usamos pipe ou redirecionamos para a utilidade grep. Parece assim, suponhamos que precisemos verificar se o pacote NetworkManager para gerenciamento de redes está instalado:

dnf list || grep "NetworkManager"

Se você estiver usando o gerenciador apt, substitua dnf no comando:

apt list || grep "NetworkManager"
pipe-2048x725
Screenshot 7 — Pipe para filtragem

Trabalhar com distribuições Linux requer habilidades no terminal e conhecimento de comandos básicos. As utilidades find e grep ocupam um lugar importante no arsenal de ferramentas, proporcionando uma busca eficiente por arquivos e seus conteúdos.

Avaliação:
4 fora de 5
Аverage rating : 4.7
Avaliado por: 3
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.