Comando grep no Linux: Localize arquivos e conteúdos rapidamente

JUNTE-SE A MAIS DE 110.000 PESSOAS QUE JÁ TEM UMA CÓPIA

Ubuntu: Iniciando com Linux de maneira prática e rápida

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Quanto mais nos aprofundamos em Linux, menos nós utilizamos interface gráfica para realizar tarefas, mesmo que você nunca tenha aberto o prompt do Windows só por curiosidade. Quando chegamos a esse ponto, o comando grep se mostra um grande companheiro.

Isso porque arquivos de configuração — ou até mesmo códigos e documentações — podem ser extensos, tornando difícil a sua leitura ou consulta sem a praticidade dos programas com GUI. Nesse sentido, o grep minimiza tais obstáculos ao oferecer funcionalidades essenciais para lidar com arquivos de texto.

Por exemplo, se você criou um conjunto amplo de regras de firewall e, certo dia, identificou a necessidade de modificar alguns parâmetros. O trabalho tanto pode demandar poucos minutos — se você dispor de recursos que o simplificam — quanto muitos minutos, caso precise localizar percorrendo o documento ou seguindo intuição.

Se você tem o grep instalado no sistema, é possível realizar uma pesquisa com termos-chave e, então, mapear rapidamente os campos do arquivo a serem modificados. Vamos aprender mais sobre o grep? Só continuar a leitura deste artigo.

Instalando o grep no Linux

Uma distro atualizada do Linux tende a ter o grep já instalado. Abra o terminal do seu sistema e digite grep; se a ferramenta não se encontra disponível, o próprio shell exibirá o caminho para instalação (sudo apt install grep ou sudo yum install grep).

Concluída a instalação, digite grep –version para confirmar.

grep (GNU grep) 3.4

Copyright (C) 2020 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others; see

<https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

É para surgir uma mensagem parecida com essa, acima. Agora que o grep está disponível, vejamos como utilizá-lo (recomendamos que tenha uma cópia de algum arquivo de texto para fazer os testes).

Primeiros passos com o comando grep

A lógica do grep é bastante simples. Você aciona o comando e declara o nome do arquivo entre aspas. Exemplo: grep “arquivo”. Porém o grep é integrável com outros comandos do Linux. Vamos analisar a sintaxe, abaixo:

ls -l [diretório a ser pesquisado] | grep -i "nome do arquivo ou diretório"

O comando ls é um dos recursos básicos para navegar no sistema; a opção -l fornece uma lista de pastas existentes e suas respectivas permissões e propriedades. Utilizando grep com a opção -i, podemos pesquisar via palavra-chave sem case sensitive.

Agora, imaginemos que você queira encontrar um termo específico que pode estar num arquivo de texto. Faça o teste: abra um editor de texto, copie o parágrafo anterior (sim, acima deste que você está lendo) e salve em algum diretório como “exemplo.txt”. Em seguida, abra o mesmo diretório no terminal e digite:

grep -i "sistema" exemplo.txt

Veja que o parágrafo que consta a palavra “sistema” foi impresso na tela do terminal com o termo destacado. Embora simples, o recurso é muito útil para receber a informação instantaneamente, sem abrir arquivo algum.

Percebeu a dinâmica do comando? Isso significa que estamos indo muito bem! Então vejamos a seguir quatro formas de uso do grep no Linux.

4 maneiras de usar o comando grep

Podemos utilizar o grep de múltiplas maneiras e em diversos cenários. Por isso, as dicas que selecionamos foram contextualizadas para situações comuns de rotinas profissionais ou coisas mais simples, como a busca por uma música dos Ramones em mp3.

1. Exibir quantidade de linhas anteriores ou posteriores à string

Por alguma razão, saber a linha na qual a informação está localizada pode ser necessário — mais provavelmente em situações envolvendo códigos e configurações. Para encontrar a info, incluindo a quantidade de linhas existentes antes ou depois, utilize as opções -A (antes) ou -B (depois).

Exemplo:

code-javascript | grep -A 74 src/Player.js

code-javascript | grep -B 25 src/Player.js

Procurando pelo item src/Player.js em um código JavaScript, identificamos que este se encontra na linha 75, pois existem 74 linhas precedentes e 25 subsequentes. Se existe um problema dentro de um código de N linhas, você consegue mapeá-lo em segundos e compartilhar com a equipe.

2. Localizar arquivos de acordo com nome e formato

Lembra da música do Ramones? Chegou a hora de ouvirmos. Porém eu tenho o péssimo hábito de não catalogar as músicas que compro, então localizar o que quero ouvir não é das tarefas mais práticas.

Neste exemplo, considerando o trabalho que daria encontrar o objeto, utilizamos o comando find junto com o grep para encontrar o mp3 da música “I Wanna Be Sedated” em sua versão de estúdio, não ao vivo. Vejamos:

find . -name "*.mp3" | grep -i Ramones | grep -i "sedated" | grep -vi "live"

Resultado:

/home/user/Music/musicas_Rock-26/0387 - Ramones - Road to Ruin (1978) - I Wanna Be Sedated.mp3

Essa dica se aplica a todos os tipos de arquivos que deseja ou necessita buscar.

3. Pesquisar por um padrão completo

Um dos obstáculos que podemos encontrar com o grep é a correspondência de pedaços de palavras. Por exemplo, se você busca por “estático” em um documento, a palavra “está”, que costuma ser recorrente, tornaria a pesquisa pouco prática.

Em contrapartida, nada disso é problema se usarmos a opção -w. Veja:

grep -i w "estático" Redes.txt

Assim, a sua pesquisa se torna muito mais rápida e precisa.

4. Encontrar string em arquivos .gzip

Um administrador de sistemas ou analistas de Segurança da Informação estão habituados a verificar logs de eventos em busca de falhas. Obviamente, dedicar tempo lendo linha por linha é algo que um profissional dessa categoria não tem condições de fazer.

A boa notícia é que o grep permite que isso seja feito com agilidade e sem trabalho algum, mesmo se os logs estiverem comprimidos em gzip. Então o sysadmin recebe um gz com milhares de logs referentes ao dia anterior e digita no terminal do Linux:

zgrep -i error /var/log/syslog-11-15-2020.3

O comando acima mapeará todos os arquivos com registro de erros, agilizando drasticamente a identificação do problema e, consequentemente, a sua solução.

Resumindo, o grep facilita a vida de quem precisa recorrer ao terminal para encontrar não apenas objetos, mas conteúdos presentes em todos os arquivos da máquina, o que faz desse comando um item indispensável para profissionais do ramo.

Quer saber na prática o que fazer para dominar o comando grep de ponta a pona? Você pode aprender isso e muito mais inscrevendo-se no curso Profissionais Linux. Tudo de forma objetiva, didática e online. Saiba mais aqui.

Compartilhe este post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Artigos Recentes

Aprenda a dominar o Linux de uma vez por todas

Aprenda a dominar o Linux de uma vez por todas