O grep pode ser visto como uma forma simplificada de consulta a um banco de dados em texto puro, em que cada linha representa um registro.
O utilitário pode ser usado para retirar um conjunto de strings (cadeias de caracteres) do resultado de um comando dado ou de um arquivo texto, por mais longo que seja.
Este artigo reúne uma coletânea de exemplos, que irão ajudar a entender bem o funcionamento do grep.
LEIA MAIS:
- Conheça estes 7 motivos para usar o comando ack em vez do grep
- Linux — os comandos básicos
- O comando tar em 9 exemplos
- O comando wget em 10 exemplos – veja como fazer downloads mais rápido
- Descubra quem entrou e quando entrou no seu sistema com o comando last
Use a caixa de busca para descobrir outros artigos que fazem uso de exemplos com o comando grep.
Exemplo básico de uso do comando grep
Para pedir uma lista dos processos em execução na máquina, podemos usar o comando ‘ps aux’.
Mas a lista pode ser muito extensa e você só quer saber (por exemplo) do ‘NetworkManager’:
ps aux | grep -i net
Observe que ele exibe e destaca todas as strings contendo a cadeia de caracteres “net” (veja a imagem, abaixo).
Entenda o que foi feito:
- O comando
ps aux
exibe todos os processos em execução. - O operador
|
redireciona os resultados do comando ps para ogrep
, que filtra as ocorrências de “net” do resultado. - O parâmetro
-i
, pede ao programa que ignore se as letras estão em maiúsculas/minúsculas.
Use o grep para filtrar resultados de arquivos de log do sistema
Certos arquivos de log do sistema são muito extensos e podem conter uma quantidade imensurável de informações irrelevantes pra sua situação.
O grep pode ajudar a encontrar “uma agulha no palheiro”.
Vejamos, como exemplo o arquivo de log /var/log/dmesg que contém informações atuais do que está ocorrendo no seu sistema.
Vamos visualizar seu conteúdo – deixando de fora tudo o que não se refere à nossa interface de rede eth0:
cat /var/log/dmesg | grep eth0
Use o egrep para filtrar resultados com operadores lógicos
Outros comandos, como lshw, também retornam uma lista muito extensa e podem demorar muito para finalizar.
O interessante, aqui, é direcionar o resultado do comando para um arquivo texto, que será usado com muito mais facilidade.
Com o seguinte comando, você cria o arquivo lshw.log contendo o resultado do lshw:
sudo lshw > lshw.log
Este procedimento traz as vantagens de não precisar mais invocar o sudo, para obter o resultado do lshw e a velocidade com que o sistema lê e exibe o texto do lshw.log.
A seguir vamos usar uma versão diferente do grep, o egrep, para filtrar os resultados que se referem às nossas interfaces de rede eth0 e wlan0:
egrep -C 2 -i '(eth|wlan)0' lshw.log
Olha a explicação do comando acima:
-C 2
— inclui as 2 linhas acima e as 2 linhas abaixo daquela em que foi encontrada a string desejada.
Assim você sabe em que contexto o resultado está inserido.-i
— desativa a sensibilidade às ‘caixas’, ou seja, tanto faz se os caracteres estiverem em minúsculas ou maiúsculas.- o operador lógico
|
ou pipe — Desde que a string termine com ‘0’, tanto faz que seja ‘eth0’ ou ‘wlan0’.
Assim, ficam incluídos os resultados referentes à interface de rede a cabo e sem fio.
LEIA MAIS:
- O comando find — veja como encontrar arquivos no Linux, com exemplos práticos de diversas situações possíveis
- Use o comando grep com dmidecode para obter informações sobre o seu sistema
- Veja como copiar arquivos recursivamente no terminal do Linux
- Aprenda em 10 exemplos a fazer downloads mais rápidos com o comando wget
Como encontrar arquivos com o comando grep
Você pode usar o utilitário também para encontrar arquivos de texto pelo seu conteúdo.
Para pesquisar recursivamente no diretório atual por arquivos que contenham a palavra “firefox”, use-o da seguinte forma:
grep -iR 'firefox' *.conf
Conclusão
Como dicas finais, ao fazer a pesquisa dentro de arquivos grandes, gosto de usar os parâmetros ‘-n’ e ‘--color
‘.
O primeiro numera as linhas, tornando mais fácil, ao abrir o arquivo, encontrar algo que eu desejo alterar.
O segundo mostra a saída do comando em cores, o que também ajuda a discernir melhor os resultados.
Você pode obter mais informações sobre o comando ao executar o seu manual:
man grep
Divirta-se!
8 replies on “O comando grep”
Boa tarde Elias!
Como posso usar o comando grep em arquivos broffice?
Obrigado.
… em conjunto com o utilitário odt2txt, é possível fazer a pesquisa. Tá explicado aqui.
[…] saída deste comando pode ser muito extensa. Para filtrar apenas a informação desejada, use o comando grep ou a opção ‘–format’ do […]
[…] o comando grep para obter apenas os dados que te interessam. Por exemplo, para ver apenas a velocidade do disco […]
Boa tarde, Elias!
Ótimo artigo! Foi de grande valia. Seu site já me socorreu outras vezes! 🙂
Hi users,
My Text format example :
AA
CC
BB
AA
CC
CC
AA
BB
CC
AA
I need to get only this sequence of lines:
AA
BB
CC
Any suggestion for use grep, awk or sed in this case?
Try it with sort! 😉
Let’s suppose your text is in a file named
text.txt
. Then:You can also use just sort:
Depois que eu entendi como funciona, passou a ser um dos meus comandos preferidos.