Achando a agulha no palheiro

Existe um comando muito útil para achar agulha no palheiro no Linux e quando necessário eu sempre uso. Já me salvou a vida várias vezes, desde erros com somente o conteúdo arquivo ou quando é preciso alterar a informação em vários arquivos distribuídos em diretórios diversos.

Para buscar conteúdo dentro de arquivos no Linux, utilize o seguinte comando:

find $CAMINHO -type f -print0 | xargs -0 grep -i $CONTEUDO

Onde $CAMINHO é o caminho de onde você deseja buscar e $CONTEUDO é uma expressão regular com o conteúdo a ser buscado. Por exemplo: se eu quiser buscar todos os arquivos que possuam meu nome é só digitar o seguinte:

find / -type f -print0 | xargs -0 grep -i Thiago

O comando find é utilizado para localizar arquivos. A opção -type f especifica que só quero os arquivos regulares (descarta arquivos especiais, links simbólicos entre outros). O -print0 imprime o caminho e o nome completo do arquivo. Após isso é incluir um pipe (|) para redirecionar os nomes dos arquivos para o xargs -0 que iá executar o grep buscando o conteúdo de cada arquivo. Agora é só encontrar a agulha!

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6