Como encontrar todos os arquivos contendo texto específico no Linux
- 1311
- 49
- Howard Fritsch
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 -rl1 | grep -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.
- Pesquise uma única string em todos os arquivos
O comando de exemplo abaixo pesquisará a string "Error" em todos os arquivos no diretório /var /log e seus subdiretos.
Pesquise texto específico em todos os arquivos usando a linha de comandogrep -rlw "error" /var /log
- Pesquise várias strings em todos os arquivos
O
-e
Switch também pode ser utilizado para encontrar várias strings. Isso é comparável aoegrep
programa. O exemplo abaixo procurará "Erro" e "Aviso" em todos os arquivos no /var/log diretório e suas subdiretas.
Pesquise várias string em todos os arquivos com linha de comandogrep -rlw -e "error" -e "aviso" /var /log
- Pesquise string em arquivos específicos
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
- Exclua alguns arquivos da pesquisa
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
- Exclua alguns diretórios da pesquisa
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.