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 amoe 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 prantoCom 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-rsignifica que é recursivo, então procura nos subdiretórios dentro dos seus diretórios..usa o diretório corrente-wretorna 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: giSe não usássemos o -w, como no caso grep Gi teste.txt, o retorno seria
praticamente todas as linhas.