Como procurar por strings dentro de arquivos em uma pasta?

88

Existe algum utilitário para fazer pesquisas por uma string dentro de arquivos ASCII para evitar buscas na linha de comando?

Como fazer uma pesquisa de linha de comando, por exemplo, para a string "test" dentro de todos os arquivos no diretório /var/x/ ?

    
por Nuno 09.10.2012 / 10:33

7 respostas

69

Você pode usar o searchmonkey. A ferramenta está disponível nos repositórios, então você pode simplesmente

sudo apt-get install searchmonkey

Por outro lado, a pesquisa de linha de comando com o grep é realmente destinada a isso ...

Aqui está uma captura de tela de searchmonkey

    
por alci 09.10.2012 / 10:41
140

Suponho que sua primeira pergunta é sobre uma alternativa de GUI ao comando grep . Eu não posso te ajudar com isso, eu sempre acho a linha de comando muito eficaz.

Quanto à linha de comando, tente

grep "test" /var/x/*

Se você quiser pesquisar recursivamente (ou seja, não apenas em /var/x/ , mas também em subdiretórios dele), faça

grep -R "test" /var/x/

Para evitar erros nos arquivos que o grep considera binários, use a opção -I :

grep -I "test" /var/x/

Se o grep achar que um arquivo é binário (baseado nos primeiros bytes do arquivo), ele assumirá que ele não corresponde ao invés de passar pelo arquivo inteiro.

    
por January 09.10.2012 / 10:46
15

Você pode usar o regexxer , é uma ótima ferramenta de busca / substituição de GUI para expressões regulares.

você pode baixar por:

sudo apt-get install regexxer

    
por user61928 09.10.2012 / 12:57
5

Tente Recoll, a melhor GUI que já usei. Para instalar o recoll em todas as versões atualmente suportadas do Ubuntu, abra o terminal e digite:

sudo apt install recoll

Ele precisa de algum tempo para indexar os arquivos primeiro (você pode definir o caminho da lista negra ou extensões ou mime).

    
por user244846 05.02.2014 / 12:28
3

Você pode usar o comando grep do terminal:

grep -r string *

Este comando encontrará todas as ocorrências de "string" em todos os arquivos sob o diretório atual (ou sub-diretórios).

Para arquivos ocultos, você pode usar:

grep -r string ..

    
por inquisitive 16.04.2015 / 11:58
2

Infelizmente o grep faz um trabalho muito pobre de procurar dentro dos arquivos do Word (.doc), mas você pode canalizar a saída do catdoc para o grep. Eu não sou programador, mas este pequeno script funciona bem para mim:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

Todas as melhorias e sugestões são bem-vindas!

    
por Ralph 26.01.2013 / 15:28
1

Acabei de lançar uma ferramenta simples para fazer o trabalho. Pensado principalmente para desenvolvedores de software, ele tem a característica (exclusiva?) De abrir vários arquivos na mesma janela. Apresenta os resultados no navegador usando o editor Ace (recomendado!) Ou a área de texto html. É uma ferramenta baseada em java, então é executada tanto no windows quanto no linux.

confira!

link

    
por Alejadro Xalabarder 01.11.2016 / 22:35