Como encontrar todos os arquivos contendo texto específico no Linux

Como encontrar todos os arquivos contendo texto específico no Linux

Este tutorial ensinará como pesquisar recursivamente por arquivos que contêm uma string específica no Linux usando a linha de comando. Este tutorial usa o comando 'Grep' para procurar strings em arquivos. Como alternativa, você pode usar o comando encontre para procurar arquivos com conteúdo específico.

Uma sintaxe básica para pesquisa de texto com o comando grep:

grep -rl
1grep -rl

O comando Grep oferece outras opções úteis para encontrar texto específico em sistemas de arquivos.

  • -r, -Recursivo: Arquivos de pesquisa recursivamente
  • -R,--dereferência-recursiva: Pesquisar arquivos de pesquisa recursivamente e siga os symblinks
  • --incluir = file_pattern: Pesquise apenas arquivos que correspondem ao File_Pattern
  • --exclude = file_pattern: Pule arquivos e diretórios que correspondem a file_pattern
  • --exclude-from = arquivo: Pule os arquivos que correspondem a qualquer padrão de arquivo do arquivo
  • --exclude-dir = padrão: diretórios que o padrão de correspondência será ignorado.
  • -L,--Files-Without-Match: Imprimir nomes de arquivos que não contêm correspondência
  • -L,--Files-With-Matches: Imprimir string contendo apenas nomes de arquivos
  • -Eu,-Ignore-Case: ignorar o caso da string de pesquisa
  • -e, --REGEXP = padrão: Use um padrão para pesquisar ou especificar várias seqüências de pesquisa
  • -W,--Word-Regexp: Força para combinar com as palavras inteiras

Existem várias maneiras de usar o comando grep para pesquisar texto. Vamos discutir alguns exemplos de pesquisa de um texto/string no sistema de arquivos.

  1. Pesquise uma única string em todos os arquivos
  2. O comando de exemplo abaixo pesquisará a string "Error" em todos os arquivos no diretório /var /log e seus subdiretos.

    grep -rlw "error" /var /log  
    Pesquise texto específico em todos os arquivos usando a linha de comando

  3. Pesquise várias strings em todos os arquivos
  4. O -e Switch também pode ser utilizado para encontrar várias strings. Isso é comparável ao egrep programa. O exemplo abaixo procurará "Erro" e "Aviso" em todos os arquivos no /var/log diretório e suas subdiretas.

    grep -rlw -e "error" -e "aviso" /var /log  
    Pesquise várias string em todos os arquivos com linha de comando

  5. Pesquise string em arquivos específicos
  6. Você pode pesquisar strings em arquivos que correspondem aos critérios de nome do arquivo. O seguinte comando procura "Erro" Em arquivos com o .registro extensão no /var/log diretório e seus subdiretos.

    grep -rlw --include = "*.log "-e" erro " /var /log  

  7. Exclua alguns arquivos da pesquisa
  8. Você pode usar o --excluir opção em encontrar para excluir alguns arquivos que correspondem a determinados critérios de nome do arquivo. Por exemplo, você pode excluir arquivos com o .TXT extensão.

    grep -rlw --exclude = "*.txt "-e" tecadmin " /var /log  

  9. Exclua alguns diretórios da pesquisa
  10. Você também pode pular a pesquisa de determinados diretórios. Por exemplo, não procure arquivos de string em nenhuma pasta com Apache2 em seu nome.

    grep -rlw --exclude -dir = "*apache2*" -e "tecadmin" /var /log /log  

Conclusão

Você aprendeu a procurar texto específico em arquivos no sistema de arquivos Linux neste tutorial.