Qual é a maneira mais rápida (precisa) de procurar por uma seqüência de texto em arquivos em uma máquina Windows?

Respostas:

10

O Notepad ++ tem a opção 'localizar nos arquivos', que está localizada no menu 'Pesquisar'. Isso permitirá que você pesquise vários arquivos em uma pasta (você pode especificar a pasta) e mostrará os números de linha de cada arquivo também . Você pode alternar se as subpastas e pastas ocultas são incluídas na pesquisa e também permite pesquisar com \ t \ n etc. e pesquisar expressões regulares, se necessário.

O Notepad ++ é um editor de programadores do Windows (não um IDE) e também é Open Source.

(Eu percebo que você provavelmente já ouviu falar do notepad ++, mas eu estou apenas mencionando isso aqui como uma opção caso você não estivesse ciente disso especial recurso, e para outros que tropeçam nesta discussão mais tarde.

Felicidades :)

Steve Rathbone
fonte
Sim, devo admitir, usei o Notepad ++ para isso antes.
Jon Cage
1
@JonCage há alguém neste segmento sevenforums.com/software/… isso também fala como você dizendo "eu admito" quando se trata de coisas úteis. Essa é uma maneira extremamente estranha de falar. Você pode querer conhecer essa pessoa. Talvez seu gêmeo.
barlop
O Notepad ++ é ótimo. Editores de outros programadores, como o SciTE, também têm funcionalidades semelhantes.
TimothyAWiseman
5

O agente Ransack funciona como um encanto. Baixe Aqui .

user601692
fonte
Agente Ransack era o nome antigo, agora é chamado File Locator Lite
rubber boots
5

Findstr sempre funciona para mim. Ele pode usar caracteres curinga de texto * ou regex para a string de pesquisa. Findstr /? para mais

uSlackr
fonte
5

Em sistemas Unix, as pessoas provavelmente usariam o grep para fazer isso, então por que não usar o Windows Grep?

http://www.wingrep.com/

Moox
fonte
O Windows Grep pode por vezes tornar-se instável, mas é o programa de pesquisa mais rápido que já usei.
yakatz
@yakatz Obrigado por mencionar a possível instabilidade com o Windows Grep, irei procurar uma ferramenta diferente para grep / replace!
pacoverflow
O wingrep é descontinuado, no entanto grepwin ainda está disponível e funciona muito bem.
techturtle
3

Aqui está uma solução Powershell:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

o -r em gci é para recursão e, claro, é opcional, assim como os dois filtros de extensão de arquivo. Um parâmetro útil de Select-String é -list que relatará apenas a primeira ocorrência de uma correspondência em um arquivo, em vez de fornecer a você cada ocorrência dele por arquivo.

Talvez você queira abrir instantaneamente cada arquivo onde uma correspondência é encontrada? Bem, a pequena alteração a seguir é bastante útil, dependendo do que você tem como associação de arquivos padrão:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii

SpellingD
fonte
Eu estava prestes a postar a mesma coisa :)
Caleb Jares
Você tem certeza -filter "*.cpp","*.h" aceita várias extensões? Isso deve sim ler -include ("*.cpp","*.hpp")
mloskot
2

ao fazer uma localização de algum SW eu uso DocFetcher para pesquisar as mesmas strings em arquivos previamente traduzidos. É gratuito e de código aberto, mas precisa criar primeiro o índice. Apenas tente. :-)

Juhele
fonte
1

Use "strings" fornecidas por M $ . Eles compraram algumas utilidades muito boas da Sysinternals alguns anos atrás. Não requer instalação, basta soltá-lo na caixa e executá-lo para sintaxe. Fácil de usar e ótimo!

sAlder
fonte
1

Outro grep implementação para o Windows pelos desenvolvedores svn tartaruga famosos:

grepWin

9dan
fonte
0

Se você está feliz na linha de comando / com o Linux. Posso sugerir a instalação de uma versão do grep para windows?

cygwin é uma maneira bastante útil de obter isso e lhe dará um ambiente Linux completo, com shell bash e um terminal rxvt. Caso contrário, se você quiser apenas as ferramentas, gnuwin32 mas você será preso com o prompt do Windows cmd.exe.

Microsoft realmente tem sua própria versão das ferramentas Unix como um download, mas eles pareciam bastante lentos comparados aos portes do gnu quando eu os experimentei. Eles também vão eliminá-los com o Windows 8.

David C. Bishop
fonte
0

É assim que procuro por cadeias de texto no Registro do Windows ou arquivos na minha máquina com Windows XP. Vamos supor que eu queira encontrar a string "Enterprise" em um arquivo de texto simples na unidade c: e, em seguida, gravar a saída em um arquivo chamado search_result.txt em c: \ windows \ temp

Abra um prompt de comando e digite:

findstr "Enterprise" c: *. txt & gt; c: \ windows \ temp \ search_result.txt

A string que você procura é sensível a maiúsculas e minúsculas. "Enterprise" e "enterprise" não encontrarão a mesma string.

Paul
fonte