Autor Tópico: Comando Grep - Pesquisar strings ou palavras dentro de arquivos.  (Lida 1875 vezes)

Offline Visterine

  • Usuário Ubuntu
  • *
  • Mensagens: 82
    • Ver perfil
Comando Grep - Pesquisar strings ou palavras dentro de arquivos.
« Online: 12 de Junho de 2020, 16:19 »
Como posso melhorar essa linha de comando com o Grep para buscar dentro dos arquivos, strings e palavras especificas, pesquisando apenas em arquivos txt ou doc?

grep -Ri "palavrapesquisada" /home/ >  resultado.txt

Com esse comando já consigo fazer a pesquisa com o retorno para consulta dentro do arquivo resultado.txt.
Porém está pesquisando em todos os arquivos, demorando uma eternidade, e preciso que pesquise dentro de arquivos específicos txt ou doc.

Já tentei com outras combinações:
grep -Ri "palavrapesquisada" /home/ 2>/dev/null | cut -d: -f2 | uniq
e
dir="/home"; kw="palavrapesquisada"; find $dir -name $kw*; grep -iR $kw $dir | grep -v "\/\./*";

Mas todas estão pesquisando em todos os arquivos.
Tem como especificar os arquivos de pesquisa?

Grato pela atenção.
Linux Mint 17.2 Cinnamon AMD Athlon II X4 2.8Ghz Ram 8Gb NVidia GeForce GT 610
Ubuntu 14.04 / Linux Mint 17.2 XFCE Intel Core 2 Duo 3Ghz Ram 4Gb

Offline FaBMak

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 722
    • Ver perfil
    • fabmak://website
Re:Comando Grep - Pesquisar strings ou palavras dentro de arquivos.
« Resposta #1 Online: 14 de Junho de 2020, 21:07 »
O segundo argumento do grep, permite restringir os arquivos por tipo.

grep -Ri "palavrapesquisada" /home/*/*.txt /home/*/*.doc >  resultado.txt

Embora, acho que não funcione corretamente, para arquivos doc, pois o formato é binário.
"Não creias impossível o que apenas improvável parece". (Shakespeare)
fabmak://website | http://twitter.com/fabmak

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:Comando Grep - Pesquisar strings ou palavras dentro de arquivos.
« Resposta #2 Online: 06 de Julho de 2020, 11:08 »
Minha sugestão...

Código: [Selecionar]
fgrep -i "palavra ou texto" `find /home -name \*.txt -o -name \*.doc`
Quanto à busca em arquivos ".doc"... sim, são binários, mas, digamos assim, que a busca vai funcionar --- desde que não se busque coisas muito complexas, como frases longas ou palavras acentuadas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D