Quer encontrar um arquivo cujo conteúdo seja um texto específico?

Boneca com Lupa

Alguns me perguntaram sobre uma funcionalidade das versões mais recentes do Microsoft Windows, na qual você pode usar seu mecanismo de pesquisa para encontrar, não apenas arquivos com um determinado nome, mas também pode incluir um texto para encontrar arquivos que incluem esse tipo de texto, como PDFs, documentos do Microsoft Office, arquivos de texto .txt, etc. Bem, você deve saber que em sua distribuição GNU / Linux você pode fazer isso e muito mais.

Já fizemos pequenos tutoriais em LxA de comandos como find, whereis, locate, etc. Agora vamos mostrar uma maneira de recriar essa funcionalidade de que falei no primeiro parágrafo de seu console. Como eu disse, o Linux é extremamente flexível e tem várias ferramentas para encontrar coisas, bem, aqui vamos mostrar algumas das diferentes maneiras que você pode usar para pesquisar arquivos nos quais um determinado texto ou string é encontrado: Para procure por uma palavra ou string nos arquivos de um diretório que você pode usar:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

No exemplo anterior, procuraríamos a palavra "hello" no diretório / home em todos os arquivos existentes. No primeiro caso, com a opção -s é realizada uma pesquisa não recursiva, enquanto com o -R torna-se recursiva, então se houver subdiretórios dentro dele também pesquisará lá ... Mas cuidado, isso iria pesquisar todo o conteúdo com esta string «hello", portanto se houver uma frase ou palavra como "hello" ela também a consideraria válida e mostraria os arquivos que a contenham, ou seja, não busca aquela palavra de maneira específica. Para torná-lo específico, você pode usar a terceira opção.

Lembre-se de que ele fará pesquisas com distinção entre maiúsculas e minúsculas, então os exemplos anteriores ignorariam coisas como Hello, HELLO, holA, etc. Fazer um pesquisar e ignorar maiúsculas e minúsculas, então você pode usar a opção -i.

Imagine que você queira fazer uma busca ao contrário, ou seja, todos aqueles arquivos onde não inclua uma string ou palavra específico. Você poderia? A verdade é que sim, por exemplo:

grep -Rlv hola /home/*

grep --exclude-dir= /home/Desktop -Rlv /home/*

No primeiro exemplo, mostrará toda a lista de arquivos que não contêm a palavra "olá", enquanto no segundo caso faria o mesmo, mas os arquivos encontrados são excluídos hospedado em / home / Desktop… A propósito, esta opção –exclude-dir = também pode ser usada nos primeiros exemplos…


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   James Vigo dito

    Grazas per isto.