Como encontrar uma string ou palavra específica em arquivos e diretórios
- 4840
- 1536
- Ms. Travis Schumm
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.
- « Como gravar e reproduzir sessões de terminal Linux usando comandos 'script' e 'scriptreplay'
- Como executar vários comandos em vários servidores Linux »