Como encontrar todos os arquivos com um texto específico usando linux shell
- 2881
- 490
- Howard Fritsch
Objetivo
O artigo a seguir fornece algumas dicas úteis sobre como encontrar todos os arquivos em qualquer diretório específico ou sistema de arquivo inteiro que contenha qualquer palavra ou string específica.
Dificuldade
FÁCIL
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
Exemplos
Encontre todos os arquivos com uma string específica não recursivamente
O primeiro exemplo de comando procurará uma string esticar
Em todos os arquivos dentro /etc/
Diretório ao excluir quaisquer subdiretos:
# Grep -s Stretch/etc/*/etc/OS-RELEASE: pretty_name = "Debian GNU/Linux 9 (Stretch)"/etc/OS-RELEASE: Version = "9 (Stretch)"
O -s
A opção Grep suprimirá mensagens de erro sobre arquivos inexistentes ou ilegíveis. A saída mostra nomes de arquivos e imprime a linha real contendo string solicitada.
Encontre todos os arquivos com uma string específica recursivamente
O comando acima omitiu todos os subdiretos. Pesquisar recursivamente significa também atravessar todos os subdiretos. O seguinte comando linux procurará uma string esticar
Em todos os arquivos dentro /etc/
Diretório, incluindo todos os subdiretos:
# grep -r alongamento/etc/*/etc/apt/fontes.Lista:# DEB CDROM: [Debian GNU/Linux Testing _Strech_-Instantâneo oficial AMD64 Netinst Binário-1 20170109-05: 56]/alongamento principal/etc/apt/fontes.Lista: #deb CDROM: [Debian GNU/Linux Testing _Strech_-Instantâneo oficial AMD64 Netinst Binário-1 20170109-05: 56]/alongamento principal/etc/apt/fontes.Lista: Deb http: // ftp.Au.Debian.Org/Debian/Stretch Main/etc/apt/fontes.Lista: Deb-Src http: // ftp.Au.Debian.Org/Debian/Stretch Main/etc/apt/fontes.Lista: Deb http: // segurança.Debian.Org/Debian-Security Stretch/Atualizações Main/etc/apt/fontes.Lista: Deb-Src http: // segurança.Debian.Org/Debian-Security Stretch/Atualizações Main/etc/Dictionaries-Common/Words: BackStrech/etc/Dictionaries- common/Palavras: BackStretch's/etc/Dictionaries-common/Palavras: BackStretches/etc/Dicties-Common/Words: Homestretch/ etc/dicionários-common/palavras: Homestretch's/etc/dicionários-common/palavras: Homestretches/etc/dicionários-common/palavras: Outstretch/etc/dictionaries-common/palavras: vendidos/etc/dictionaries-common/words: Outstretches/ etc/dicionários-common/palavras: estendendo-se/etc/dicionários-common/palavras: alongamento/etc/dicionários-common/palavras: alongamento/etc/dicionários-comcommon/palavras: alongados/etc/dicionários-common/palavras: maca/maca/ etc/dicionários-common/palavras: maca/etc/dicionários-common/palavras: macas/etc/dicionários-common/palavras: alongamentos/etc/dictionies-common/words: elicier/etc/dictionaries-common/palavras: etc/dicionários comuns/palavras:Alongamento/etc/dicionários comuns/palavras: elástico/etc/grub.d/00_header: Background_Image -M Stretch 'make_system_path_relative_to_its_root "$ GRUB_BACKGRONGRONG"/etc/OS-RELEASE: pretty_name = "Debian GNU/Linux 9 (Stretch)"/etc/OS-Release: Version = "9 (Stretch)"
Pesquise todos os arquivos que contêm uma palavra específica
O de cima grep
Exemplo de comando lista todos os arquivos que contêm string esticar
. Significando as linhas com alongar
, esticado
etc. também são mostrados. Use Grep's -c
opção para mostrar apenas uma palavra específica:
# grep -rw alongamento/etc/*/etc/apt/fontes.Lista:# DEB CDROM: [Debian GNU/Linux Testing _Strech_-Instantâneo oficial AMD64 Netinst Binário-1 20170109-05: 56]/alongamento principal/etc/apt/fontes.Lista: #deb CDROM: [Debian GNU/Linux Testing _Strech_-Instantâneo oficial AMD64 Netinst Binário-1 20170109-05: 56]/alongamento principal/etc/apt/fontes.Lista: Deb http: // ftp.Au.Debian.Org/Debian/Stretch Main/etc/apt/fontes.Lista: Deb-Src http: // ftp.Au.Debian.Org/Debian/Stretch Main/etc/apt/fontes.Lista: Deb http: // segurança.Debian.Org/Debian-Security Stretch/Atualizações Main/etc/apt/fontes.Lista: Deb-Src http: // segurança.Debian.Org/Debian-Security Stretch/Atualizações Main/etc/Dictionaries-Common/Words: Stretch/etc/Dictionaries-Common/Words: Stretch's/etc/grub.d/00_header: Background_Image -M Stretch 'make_system_path_relative_to_its_root "$ GRUB_BACKGRONGRONG"/etc/OS-RELEASE: pretty_name = "Debian GNU/Linux 9 (Stretch)"/etc/OS-Release: Version = "9 (Stretch)"
Listar apenas os nomes de arquivos que contêm um texto específico
Os comandos acima podem produzir uma saída desnecessária. O próximo exemplo mostrará apenas todos os nomes de arquivos que contêm string esticar
dentro de /etc/
diretório recursivamente:
# Grep -rl Stretch/etc/*/etc/apt/fontes.Lista/etc/dicionários common/words/etc/grub.D/00_HEADER/ETC/OS
Execute a pesquisa insensível ao caso
Todas as pesquisas são, por padrão, sensíveis ao caso, o que significa que qualquer pesquisa por uma string esticar
mostrará apenas arquivos que contêm a mancha exata e a correspondência minúscula. Usando o Grep's -eu
Opção O comando também listará todas as linhas que contêm Esticar
, ESTICAR
, Esticar
etc., Portanto, para realizar pesquisas insensíveis ao caso.
# Grep -Ril Stretch/etc/*/etc/apt/fontes.List/etc/dicionários common/padrão.hash/etc/dicionários comuns/palavras/etc/grub.D/00_HEADER/ETC/OS
Inclua ou exclua nomes de arquivos específicos da pesquisa
Usando grep
Comando também é possível incluir apenas arquivos específicos como parte da pesquisa. Por exemplo, só gostaríamos de procurar um texto/string específico dentro de arquivos de configuração com extensão .conf
. O próximo exemplo encontrará todos os arquivos com extensão .conf
dentro de /etc
diretório que contém string Bash
:
# Grep -Ril Bash /etc /*.conf ou # grep -ril --include = \*.conf bash /etc /* /etc /adduser.conf
Da mesma forma, usando --excluir
Opção, podemos excluir quaisquer nomes de arquivos específicos:
# grep -ril --exclude = \*.conf bash/etc/*/etc/alternativas/view/etc/alternativas/vim/etc/alternativas/vi/etc/alternativas/vimdiff/etc/alternativas/rvim/etc/alternativas/ex/etc/alternativas/rview/etc /BASH.Bashrc /etc /Bash_completion.d/grub/etc/cron.diariamente/apt-comp/etc/cron.diariamente/exIm4-BASE/etc/dicionários comuns/inadimpl.hash/etc/dicionários common/words/etc/inputrc/etc/passwd/etc/passwd-/etc/perfil/etc/shells/etc/skel/.perfil/etc/skel/.Bashrc/etc/skel/.Bash_logout
Excluir diretórios específicos da pesquisa
O mesmo que com os arquivos Grep também pode excluir diretórios específicos da pesquisa. Usar --exclude-Dir
opção para excluir o diretório da pesquisa. O exemplo de pesquisa a seguir encontrará todos os arquivos que contêm string esticar
dentro de /etc
diretório e exclusão /etc/grub.d
De pesquisa:
# grep --exclude-dir =/etc/grub.d -rwl alongamento/etc/*/etc/apt/fontes.List/etc/dicionários common/words/etc/os-lançamento
Exibir um número de linha contendo string pesquisada
Usando -n
A opção Grep também fornecerá uma informação sobre um número de linha em que a string específica foi encontrada:
# grep -rni bash /etc /*.conf /etc /adduser.conf: 6: dshell =/bin/bash
Encontre todos os arquivos que não contêm uma string específica
O último exemplo usará -v
opção para listar todos os arquivos que não contêm uma palavra -chave específica. Por exemplo, a pesquisa a seguir listará todos os arquivos dentro /etc/
diretório que não contém string esticar
:
# grep -rlv alongamento /etc /*
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Comandos Linux: os 20 comandos mais importantes que você precisa para…
- Comandos básicos do Linux
- Como encontrar uma string ou texto em um arquivo no Linux
- Como grep corretamente para texto em scripts de bash
- Encontre todos os arquivos contendo texto específico
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Como imprimir a árvore do diretório usando o Linux
- Exemplos úteis de linha de comando Bash e truques - Parte 4
- Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1
- « Como habilitar e desativar o módulo PHP Curl com Apache no Ubuntu Linux
- Fontes de Jessie de Debian Apt-Get Jessie.lista »