Encontre todos os arquivos contendo texto específico

Encontre todos os arquivos contendo texto específico

Você provavelmente já sabe como usar o grep comando para pesquisar uma string de texto em um arquivo no Linux. Mas e se você quiser recuperar uma lista de arquivos que contêm a string de texto? Esta é uma tarefa mais adequada para grep ou o comando de localização. Vamos mostrar como fazer isso neste guia.

Neste tutorial, você aprenderá:

  • Como usar grep e encontrar comandos para encontrar todos os arquivos contendo texto específico
Encontre todos os arquivos contendo texto específico Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Qualquer distro Linux
Programas N / D
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Procure texto específico com o comando grep



Sem dúvida, grep é o melhor comando para pesquisar um arquivo (ou arquivos) para um texto específico. Por padrão, ele retorna todas as linhas de um arquivo que contém uma certa string. Este comportamento pode ser alterado com o -eu opção, que instrui grep para retornar apenas os nomes de arquivos que contêm o texto especificado.

Agora vamos ver isso em ação. Use a seguinte sintaxe no terminal e especifique todos os arquivos que você deseja pesquisar anexando seu caminho e nome ao final do comando.

$ grep -l exemplo document1.TXT Document2.TXT 
Usando o Grep para descobrir quais arquivos contêm o texto especificado

A saída de grep mostra -nos que nossa string de pesquisa "Exemplo" existe apenas no Document1.TXT arquivo. Além disso, não se esqueça que os curingas são permitidos e podem ajudar a fazer grep mais eficiente:

$ grep -l Exemplo *.TXT 

Mas vamos ser realistas. Se você está pesquisando apenas alguns arquivos, provavelmente não teria acabado lendo este guia. Provavelmente, você tem um diretório (ou vários diretórios) cheio de arquivos que você precisa pesquisar. Isso não é problema para grep Contanto que você inclua o -r opção (recursiva) no comando.

$ grep -lr exemplo/path/to/diretório1/*.txt/path/to/diretório2 

Ou, para pesquisar no diretório atual e em todos os subdiretos, omite o caminho no final do comando.

$ grep -lr Exemplo 
Usando Grep para pesquisar recursivamente

Considere também usar o -eu opção, o que torna sua sequência de pesquisa insensível. Para aprender sobre o resto do grep Funções do comando em detalhes, confira nosso guia de introdução ao Grep. A página do homem também contém informações úteis:

$ grep homem 

Procure texto específico com o comando de encontro

Se você preferir usar o encontrar Comando, você pode usar a seguinte sintaxe de comando:

$ find/path/to/Search -Type f -exec Grep -l "Your -Search -string"  \; 
Usando o comando encontre para pesquisar arquivos que contêm a string de texto

Mais uma vez, adicione -eu para o grep parte do comando para ignorar o caso. O encontrar e grep Métodos funcionam bem. Use o que você preferir.

Conclusão

Neste guia, vimos como encontrar todos os arquivos contendo texto específico no Linux. Aprendemos dois métodos de linha de comando para realizar a tarefa, mas ainda mais existem.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Comandos básicos do Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Como encontrar uma string ou texto em um arquivo no Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Instale Arch Linux na estação de trabalho VMware
  • Ubuntu 20.04 Guia
  • Coisas para instalar no Ubuntu 22.04