Eu diria que WinGrep é uma chance.
Então aqui está a situação. Atualmente, executo um servidor de e-mail para minha pequena empresa sem fins lucrativos. Meu servidor de e-mail (Merak Mail Server) mantém logs em arquivos .log e mail como arquivos .tmp. Essencialmente, são apenas arquivos de texto que são mantidos no servidor.
O problema é que quando eu coloco texto no campo "Contendo texto" no Windows Explorer, ele sempre erra os arquivos e diz que nenhum resultado é retornado. Então, quando eu procuro os arquivos um por um (doloroso na melhor das hipóteses), eu encontro os arquivos que eu preciso.
Eu não entendo o recurso de pesquisa bem o suficiente, ou talvez eu tenha indexado errado. Eu realmente não me importo com o que eu preciso usar para pesquisar os arquivos, até mesmo um aplicativo de terceiros é bom para mim, eu só quero digitar um endereço de e-mail em uma caixa e pesquisar todos os meus arquivos de log ou arquivos de e-mail e encontrar qual deles eu estou procurando. Pode ser o Windows Search ou qualquer outra coisa, desde que eu possa encontrar uma maneira de fazer o trabalho, serei feliz. As soluções de pagamento também são boas.
Obrigado a todos antecipadamente.
Eu diria que WinGrep é uma chance.
Se eles estiverem todos em um único diretório, posso ver um processo de duas etapas ajudando você.
Etapa 1: linha de comando
Abra um shell do CMD e vá para o diretório que você está procurando. Em seguida, emita o comando find:
F:\directory> find "[email protected]" *
Em seguida, ele pesquisará todos os arquivos desse diretório pela string que você está procurando. Quando encontrar um, ele te dará o nome do arquivo, assim:
---------- MSGTRK20090603-1.LOG 2009-06-03T09:11:37.486Z,192.168
O que informará qual arquivo deve ser pesquisado.
Passo 2: Pesquisando dentro do arquivo
Este passo você já conhece. O primeiro passo é apenas limitar o seu escopo de pesquisa.
Use findstr no prompt de comando!
C:\>findstr /?
Searches for strings in files.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
/B Matches pattern if at the beginning of a line.
/E Matches pattern if at the end of a line.
/L Uses search strings literally.
/R Uses search strings as regular expressions.
/S Searches for matching files in the current directory and all
subdirectories.
/M Prints only the filename if a file contains a match.
etc.
Example:
C:\>findstr /s /m [email protected] c:\temp\*.txt c:\temp\*.log
c:\temp\t\t.log
c:\temp\t\t.txt
c:\temp\t\tt.log
c:\temp\tt.txt
Redirect to a file and open in notepad:
C:\>findstr /s /m [email protected] c:\temp\*.txt c:\temp\*.log > c:\temp\myemail.txt & notepad c:\temp\myemail.txt
Você pode fazer isso de duas maneiras (bem, tenho certeza de que há mais, mas aqui está o que eu faria)
Instale o Microsoft Desktop Search, você pode fazer isso no servidor ou em uma estação de trabalho e fazer com que ele indexe os arquivos. Deve ser capaz de ver que são arquivos de texto e indexar o conteúdo. Este será o mais rápido dos dois caminhos. Isso é grátis btw.
Use um editor de texto avançado como o Notepad ++ ou o Textpad e use a opção de arquivo em arquivos que pesquisará todos os arquivos no diretório. Mas isso levará mais tempo quando você precisar executar a pesquisa. O Notepad ++ é gratuito, o Textpad tem um custo pequeno, mas é livre para experimentar.
Se isso é algo que você precisa fazer com freqüência, eu usaria 1. Se não for freqüente de vez em quando, experimente 2 e veja se funciona para você.
Eu gosto do UltraEdit para isso. Você pode avisá-lo para pesquisar todos os arquivos em um diretório (ou limitá-lo a certos tipos de arquivos ou a qualquer outro curinga) para uma sequência que você especificar. Se encontrar seu texto em vários arquivos ou várias vezes em um arquivo, ele fornecerá uma lista de todas as ocorrências encontradas e, ao clicar em uma, você será direcionado para esse arquivo / local.
Use o powershell então:
select-string -path c: \ mylogfiledir * .log -pattern "minha string"
Note que no powershell v2 você também pode usar a opção -context para obter as linhas acima e abaixo da linha onde a correspondência foi encontrada
Você pode usar ack 'Um programa parecido com o grep, especificamente para árvores de grande porte. Ack é como o grep, mas escrito em perl (funciona bem no Windows). Estas são as razões pelas quais é supostamente melhor que o grep:
Eu nunca você o Windows procura / encontrar, por causa de coisas como esta. Eu geralmente acabo fazendo uma pesquisa através de um prompt de comando bom e velho. Os resultados são 99% mais rápidos e precisos do que a GUI Search / Find.
c:
cd \
dir /s *.log *.tmp
Você pode até mesmo canalizar os resultados para o Find comando se você quiser pesquisar nos resultados.
Não esqueça que o Logparser também pode ser um bom analisador de texto / utilitário de pesquisa. Os formatos 'TEXTWORD e TEXTLINE input' e os formatos 'CSV e TSV input' valem a execução da chamada logparser -i: INPUTFORMATYOUWISHTOKNOWMOREABOUT -h 'help'. Também há exemplos nos arquivos de ajuda.
Eu uso o Agent Ransack e ele funciona muito bem. Ele também se anexa ao menu do botão direito do mouse para que você possa clicar com o botão direito do mouse na pasta e dizer "Agent Ransack" e ele procurará lá. Ah, e melhor coisa, é de graça.
Eu uso isso para pesquisar arquivos de texto e pastas temporárias que a Pesquisa normal do Windows não pesquisa.
Espero que ajude.
Eu uso o PsPad (um editor de texto avançado gratuito) para fazer pesquisas de registro semelhantes. Se você for a Pesquisa - > Pesquisar / substituir em arquivos você pode pesquisar qualquer seqüência de texto em um conjunto de arquivos em um diretório específico.
Se você gostaria de usar o Windows Explorer:
Clique em Alterar preferências Alterar o comportamento de pesquisa de arquivos e pastas Certifique-se de que "avançado" esteja selecionado
Clique em opções mais avançadas Certifique-se de que "arquivos e pastas ocultos" estejam selecionados
Então Ferramentas Opções de Pasta Guia Exibir Marque "mostrar arquivos e pastas ocultos" Desmarque a opção "ocultar as extensões dos tipos de arquivos conhecidos" Desmarque a opção "ocultar arquivos protegidos do sistema operacional"
Eu faço logfile (e outras pesquisas de arquivos de texto) com uma cópia do GNU grep (para windows) que foi baixada e colocada no diretório dos arquivos que eu quero escanear (ou colocar no seu caminho)
Em seguida, no prompt de comando, digite
grep -H [email protected] * .tmp > > output.txt
Isso lhe dará um arquivo de saída com os nomes dos arquivos (e a linha com o endereço de e-mail).
Eu diria que este é um trabalho para WildReplace . O WildReplace é totalmente gratuito e é bom apenas para pesquisar arquivos de texto, como arquivos .xml.
O Wildreplace faz tudo o que o grepWin e o WinGrep fazem e exibe os resultados melhor na minha opinião.
O Windows não pesquisa todos os arquivos em busca de texto. Veja o artigo link . É possível adicionar entradas de registro que serão adicionadas aos tipos de arquivos que esse estilo de pesquisa encontrará.
A pesquisa do Windows, por padrão, pesquisa nomes de arquivos em locais não indexados e pesquisa nomes de arquivos e seu conteúdo em locais indexados. Mas você pode alterar isso se acessar a guia Ferramentas- > Opções de pasta- > Pesquisa.
Se você não encontrar sua extensão de arquivo na lista de indexação, poderá adicioná-la nas opções avançadas de indexação:
É surpreendente que ninguém tenha falado sobre isso.