Como encontrar uma string ou palavra específica em arquivos e diretórios

Como encontrar uma string ou palavra específica em arquivos e diretórios

Deseja encontrar todos os arquivos que contêm uma palavra ou string de texto específico em todo o seu sistema Linux ou um determinado diretório. Este artigo o guiará sobre como fazer isso, você aprenderá a cavar recursivamente os diretórios para encontrar e listar todos os arquivos que contêm uma determinada sequência de texto.

Uma maneira simples de resolver isso é usando a ferramenta de busca de padrões Grep, é um utilitário de linha de comando poderoso, eficiente, confiável e mais popular para encontrar padrões e palavras de arquivos ou diretórios em sistemas semelhantes a UNIX.

Leia também: 11 Comandos avançados de 'Grep' em classes de personagens e expressões de suporte

O comando abaixo listará todos os arquivos que contêm uma linha com o texto “check_root”, Ao pesquisar recursivamente e agressivamente ~/bin diretório.

$ grep -rw ~/ bin/ -e 'check_root' 
Encontre uma palavra em diretório

Onde o -R a opção informa grep Para ler todos os arquivos em cada diretório, recursivamente, seguindo links simbólicos apenas se eles estiverem na linha de comando e na opção -c instrui -o a selecionar apenas as linhas que contêm correspondências que formam palavras inteiras e -e é usado para especificar a string (padrão) a ser pesquisada.

Você deve usar o comando sudo ao pesquisar determinados diretórios ou arquivos que exigem permissões raiz (a menos que você esteja gerenciando seu sistema com a conta raiz).

 $ sudo grep -rw / -e 'check_root' 

Ignorar as distinções de caso empregam o -eu opção como mostrado:

$ grep -riw ~/ bin/ -e 'check_root' 

Se você quiser saber a linha exata onde existe a sequência de texto, inclua o -n opção.

$ grep -rinw ~/ bin/ -e 'check_root' 
Encontre string com o número da linha

Supondo que existem vários tipos de arquivos em um diretório em que você deseja pesquisar, você também pode especificar o tipo de arquivos a serem pesquisados, por exemplo, por sua extensão usando o --incluir opção.

Este exemplo instrui Grep a apenas examinar todos .sh arquivos.

$ grep -rnw --include = \*.sh ~/ bin/ -e 'check_root' 

Além disso, é possível procurar mais de um padrão, usando o seguinte comando.

$ grep -rinw ~/ bin/ -e 'check_root' -e 'netstat' 
Encontre várias palavras em arquivos

É isso! Se você conhece algum outro truque da linha de comando para encontrar string ou palavra em arquivos, compartilhe conosco ou faça qualquer pergunta sobre este tópico, use o formulário de comentário abaixo.