domingo, 2 de agosto de 2009

Procurar arquivos no Linux a partir de um trecho de texto contido nele

Hoje darei uma dica sobre Linux que pode ser bem útil em seu dia a dia.

Vamos dizer que você escreveu um texto em um arquivo certo tempo atrás e hoje você lembra o que tem escrito nele mas não lembra o nome do arquivo. Ou vamos dizer que você alterou o nome de um método em seu projeto e precisa alterar todos os arquivos que usam o método com o nome antigo. Como encontrar esses arquivos?

Para procurar arquivos em um diretório a partir de um trecho contido dentro do dele existe o comando grep.

Por exemplo, vamos dizer que eu queira encontrar todos os arquivos que contém o trecho de texto "user" dentro do diretório atual.

Eu usaria:

grep "user" *

A sintaxe é "grep opções texto arquivo"

Eu posso usar também:

grep -Ri "user" *

O "R" diz pra ele procurar também em subpastas e o "i" diz pra ele não diferenciar maiúsculas de minúsculas.

Poderia melhorar utilizando:

grep -Rin "user" *

Com a opção "n" ele me retornaria também o número da linha em que o texto foi encontrado.

O grep pode ser usado também para filtrar o resultado de um outro comando, por exemplo:

lspci | grep "nVidia"

As aspas são opcionais para textos de uma palavra só.

Espero que a dica ajude. Na verdade eu estava tentando encontrar um arquivo que continha um trecho de código em meu projeto e o Vinícius Baggio me ensinou como fazer (obrigado!). Aí como achei bem útil resolvi vir aqui e passar a informação adiante.

Abraços.

1 comentários:

Vinicius Baggio Fuentes disse...

Legal que pude ajudar! Comandos do shell como o grep,cat, sed, find, more e afins são indispensáveis!!!

abraços!