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

8

Como o título sugere, qual é a maneira mais rápida (precisa) de encontrar quais linhas de quais arquivos correspondem a uma string específica.

Especificamente, estou pesquisando os arquivos .cpp e .h .

    
por Jon Cage 13.06.2012 / 14:39

10 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 pasta. 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 sei que você provavelmente já ouviu falar do notepad ++, mas eu estou apenas mencionando aqui como uma opção caso você não tenha conhecimento desse recurso particular , e para outros que tropeçam neste tópico mais tarde.

Felicidades:)

    
por 13.06.2012 / 15:33
5

O Agent Ransack funciona como um encanto. Faça o download aqui .

    
por 13.06.2012 / 15:28
5

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

    
por 13.06.2012 / 15:23
5

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

link

    
por 13.06.2012 / 22:03
3

Aqui está uma solução do 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 em que uma correspondência for encontrada? Bem, a pequena alteração a seguir é bastante útil, dependendo de como você tem sua associação de arquivo padrão:

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

    
por 13.06.2012 / 19:17
2

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

    
por 13.06.2012 / 14:49
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 a sintaxe. Fácil de usar e ótimo!

    
por 13.06.2012 / 16:38
1

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

grepWin

    
por 14.06.2012 / 08:17
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?

O

cygwin é uma maneira bastante prática 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, há gnuwin32 , mas você ficará com o prompt do Windows cmd.exe.

A Microsoft na verdade tem sua própria versão das ferramentas do Unix como download, mas elas pareciam bastante lentas em comparação com o gnu portas quando eu tentei. Eles também vão eliminá-los com o Windows 8.

    
por 13.06.2012 / 15:46
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 > c: \ windows \ temp \ search_result.txt

A string que você pesquisa diferencia maiúsculas de minúsculas. "Enterprise" e "enterprise" não encontrarão a mesma string.

    
por 18.06.2012 / 22:35