Parâmetros úteis para o grep
O que é o grep?
Segundo o próprio manual do Linux (man grep
), o grep é um comando para você procurar
padrões em um arquivo. Se nenhum arquivo é dado, é feita uma busca recursiva no diretório
atual e uma busca não recursiva lê as entradas padrão. Por padrão o grep imprime as linhas
que combinam com o padrão desejado. Ou seja, é uma ferramenta pra você procurar algum
padrão de texto dentros dos seus arquivos sem ter que efetivamente abrir o arquivo e ler
tudo. Quase um Ctrl + F
que olha o arquivo pra você.
O uso básico dele é grep <padrão> <arquivo>
.
Rápido exemplo
Se criamos um arquivo chamado “perola_negra.txt” com o refrão da música que estou ouvindo neste exato momento (que, como é fácil de imaginar, se chama Pérola Negra)
Tente usar a roupa que eu estou usando
Tente esquecer em que ano estamos
Arranje algum sangue, escreva num pano
Pérola Negra, te amo, te amo
Rasgue a camisa, enxugue meu pranto
Como prova de amor mostre teu novo canto
Escreva num quadro em palavras gigantes
Pérola Negra, te amo, te amo
e quisermos lembrar como era aquela parte da música que dizia alguma coisa do pranto, podemos fazer
$ grep pranto perola_negra.txt
Rasgue a camisa, enxugue meu pranto
Com o termo pranto destacado geralmente por alguma cor.
Beleza, mas quais os parâmetros legais?
Peguemos o seguinte comando:
grep -nr "<string qualquer>" .
Segundo a documentação, temos
-n
é usado pra mostrar a linha do arquivo que sua string foi encontrada-r
significa que é recursivo, então procura nos subdiretórios dentro dos seus diretórios..
usa o diretório corrente-w
retorna apenas as combinações completas com o padrão que você está buscando
Por exemplo, dado um arquivo teste.txt
com o seguinte conteúdo
Giovana Vieira de Morais
Giovana
Gi
Gigi
gi
GiGIGI
$ grep -nw Gi teste.txt // buscando apenas por "Gi" e sua linha
./teste.txt:3: Gi
$ grep -nw gi teste.txt
./teste:txt:5: gi
Se não usássemos o -w, como no caso grep Gi teste.txt
, o retorno seria
praticamente todas as linhas.