Pesquisando arquivos pelo seu conteúdo em modo texto
Dica publicada em Linux / Comandos
Pesquisando arquivos pelo seu conteúdo em modo texto
Às vezes é necessário pesquisar um arquivo pelo conteúdo e talvez o computador que você esteja usando só tenha o Linux em modo texto, normalmente servidores.
Nesse caso é necessário combinar alguns comandos do Linux, utilizando seu incrível potencial. O resultado é este:
# find / | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq
Desta forma serão mostrados todos os arquivos do computador que contenham esta palavra_chave. Note que você pode mudar o diretório de pesquisa no início do comando "find /". Você pode modificar por exemplo para "find /home/seu_usuário".
No entanto existe um problema neste comando, se você tiver algum arquivo que contenha no meio do seu nome o caracter ":" , só irá mostrar a primeira parte do arquivo.
Neste caso, que pode dar problemas, resuma o comando um pouco, mas a tela será preenchida com informações em excesso. Veja o comando abaixo:
# find / | xargs grep -s -a -i palavra_chave | uniq
Se você quiser saber quantas vezes a palavra chave aparece, retire o comando "|uniq", será mostrado cada arquivo o mesmo número de vezes que encontrar a palavra_chave no arquivo.
Esta dica é simples, mas também é bastante útil.
Outras dicas deste autor
Instalando o Macromedia Flash no Linux
Problemas ao compilar o MPlayer no Slackware Linux 12.1
Instalando o pacote ZEOS Access no Lazarus 0.9.24
Leitura recomendada
Monitor de sistema no MATE Desktop
Comandos de Slackware para iniciantes
Usando cat para copiar arquivos remotos
Comentários
Muito boa dica!
E aí fera... como disse... dica simples porém bastante útil!
Excelente dica!
Grande abraço!
Excelente dica!
Grande abraço!
O que pode ser feito para otimizar o resultado da busca é criar um Shell para executar a busca.
Criei um arquivo "busca" por exemplo
no final da string acrescente "> x" onde "x" é o nome do arquivo com o resultado da busca
ind / | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq > x
no prompt execute o shell
# sh busca
ou
# ./busca
O resultado da busca será salvo no arquivo "x" que você adicionou ao final da string
Criei um arquivo "busca" por exemplo
no final da string acrescente "> x" onde "x" é o nome do arquivo com o resultado da busca
ind / | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq > x
no prompt execute o shell
# sh busca
ou
# ./busca
O resultado da busca será salvo no arquivo "x" que você adicionou ao final da string
ok, boa dica! mais como fazer isso em modo gráfico?
excelente dica...
Gostaria de saber se funciona (ou como funcionaria) para buscar uma expressão dentro de um arquivo .doc.
É possível?
Valeu!
Gostaria de saber se funciona (ou como funcionaria) para buscar uma expressão dentro de um arquivo .doc.
É possível?
Valeu!
Ficou muito legal, eu só adicionaria o 2>/dev/null para limpar as mensagens de erro da tela.
Ficaria assim no comando 1:
# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq
E assim no comando 2:
# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | uniq
Ficaria assim no comando 1:
# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq
E assim no comando 2:
# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | uniq