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 :)


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

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


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/


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


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. :-)


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!


1

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

grepWin


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.