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.