Herramientas para buscar cadenas dentro de archivos sin indexar [cerrado]

170

Tengo que cambiar algunas cadenas de conexión en una aplicación heredada increíblemente antigua, y los programadores que lo hicieron pensaron que sería una gran idea colocar toda la aplicación con cadenas de conexión por todo el lugar.

La búsqueda del "proyecto actual" de Visual Studio es increíblemente lenta, y no confío en Windows Search.

Entonces, ¿cuál es la mejor herramienta gratuita de búsqueda de texto no indexada que existe? Todo lo que debe hacer es devolver una lista con los archivos que contienen la cadena deseada dentro de una carpeta y sus subcarpetas.

Estoy ejecutando Windows 2003 Server.

kitsune
fuente
010 Editorbusca archivos huuuge en 0 segundos.
Morteza Ziyae
Depeche View supera todo lo demás en esta página, sin duda. Sin embargo, hay algunos accesos directos que querrás tomar un par de minutos para leer el archivo de ayuda y aprender. stahlworks.com/dev/depeche-view.html
BVernon
También lo uso mucho, sin embargo, te obliga a hacer clic en cada archivo de resultados para ver las coincidencias de contenido en el panel derecho. Además, el contenido del archivo en el panel derecho no se puede ampliar (el tamaño de la fuente es demasiado pequeño).
Meryan
Esta es una buena pregunta para la ingeniería de software, pero fuera de tema en SO. ¿Qué sitio de red SE es sobre el tema? Consulte, por ejemplo, las preguntas de SE.SE sobre 'base de código de búsqueda' . Deberíamos migrar esta pregunta para que se pueda volver a abrir.
smci
1
Eche un vistazo a File Content Finder en la tienda de aplicaciones (descargo de responsabilidad: soy el desarrollador). Puede buscar en archivos de texto / fuente, pero también en pdf, doc (x), xls (x) e incluso archivos jpg / png escaneados - microsoft.com/en-au/p/file-content-finder/9mzc4sk6j6bp
Geo Systems

Respuestas:

60

Respuesta original

Windows Grep hace esto realmente bien.

Editar: Windows Grep ya no es mantenido o puesto a disposición por el desarrollador. Un enlace de descarga alternativo está aquí: Windows Grep - alternativo

Respuesta actual

Visual Studio Code tiene excelentes capacidades de búsqueda y reemplazo en todos los archivos. Es extremadamente rápido, admite expresiones regulares y vista previa en vivo antes del reemplazo.

ingrese la descripción de la imagen aquí

RedFilter
fuente
10
ss64.com/nt/findstr.html
JohnnyFromBF
10
En mi máquina (Windows 7), se bloqueó dos veces. Intentaré algo más.
B. Clay Shannon
2
Es viejo, también se estrelló para mí. Incluso si no es perfecto para algunos objetivos grepWin es mejor imoh
Paolo
9
AstroGrep también es rápido y no es difícil
Zorb
Funcionó bien para mí en Windows 7 - sin bloqueos
w5m
364

Soy fanático del cuadro de diálogo Buscar en archivos en Notepad ++ . Bonificación : es gratis.

ingrese la descripción de la imagen aquí

BQ.
fuente
Que desafortunadamente no puede o no busca todos los archivos de Microsoft Word. Algo sobre la diferencia entre ".doc" y ".docm" sospecho
Carl Witthoft
11
@CarlWitthoft .docm, como .docx, .xlsmy en .xlsxrealidad son documentos XML comprimidos.
Ian Boyd
1
funciona bien para carpetas pequeñas con un número normal de archivos, se bloquea para archivos de gran tamaño con muchas carpetas de archivos, al menos cuando uso mi computadora portátil. Un poco más rápido cuando se usa una PC potente. Además, mientras está buscando, no puede abrir ningún otro archivo.
Mohammed Joraid
Encontré mi texto. Sin embargo, no me permitió seleccionar en los resultados qué valores reemplazar y cuáles conservar. ¿Todo o nada?
ofer.sheffer
55
No tenía idea de que esto era incluso una opción en notepad ++. ¡Gran solución para encontrar archivos perdidos! Sin embargo, parece tener problemas con archivos de gran tamaño. Ocasionalmente da el error "archivo demasiado grande para abrir".
John August
167

También hay un programa incorporado de Windows llamado findstr.execon el que puede buscar dentro de los archivos.

>findstr /s "provider=sqloledb" *.cs
JohnnyFromBF
fuente
3
Simple y eficiente!
Markus Fantone
Esto es mucho más rápido que el Explorador de Windows y en realidad encontró el texto que estaba buscando, mientras que usar el Explorador de Windows no arrojó resultados de búsqueda para mí. Gracias.
mbomb007
1
Para mí, la mejor respuesta sobre este tema porque no necesita instalar nada. En mi caso tuve que complementar agregando algunos argumentos porque hay demasiada información para aparecer en la pantalla. El argumento / M enumera solo el nombre del archivo que tiene la información que estaba buscando. Para acceder al manual del comando FindStr, escriba "FindStr /?" en la consola
Alexandre Ribeiro el
Esta es una gran utilidad, pero parece que no puede leer caracteres cirílicos en los nombres de archivo. Por ejemplo:FINDSTR: Cannot open ???????????.txt
Artem Russakovskii
1
Findstr no es compatible con el texto UTF16.
David Bremner
34

Me gusta AstroGrep. Los resultados se muestran en una lista. Un clic en una fila muestra la línea completa como una vista previa que resalta el golpe. Parece ser bastante rápido, delgado y es gratis. Probado en Windows 7, 8, 10 y Windows Server 2008 R2. Permite expresiones regulares.

Captura de pantalla más reciente de AstroGrep

AstroGrep es una utilidad de búsqueda de archivos (grep) de la GUI de Microsoft Windows. Sus características incluyen expresiones regulares, opciones de impresión versátiles, almacena las rutas usadas más recientes y tiene una función de "contexto" que es muy agradable para mirar el código fuente

Referencia: AstroGrep

Anytoe
fuente
77
De todos los demás enumerados aquí, este es el único que permite especificar patrones de exclusión para carpetas. Muy útil al intentar omitir carpetas como node_moduleso bower_components.
Mrchief
1
Muy buen software, rápido, configurable y muestra archivos junto con el contexto relacionado
HanniBaL90
1
Y 'rápido' merece una segunda mención ...self == happy
cssyphus
9

La búsqueda de Visual Studio en carpetas es, con mucho, la más rápida que he encontrado.

Creo que busca de manera inteligente solo archivos de texto (no binarios), y las búsquedas posteriores en la misma carpeta son extremadamente rápidas, a diferencia de otras herramientas (probablemente los archivos de texto quepan en el caché del disco de Windows).

VS2010 en un disco duro normal, sin SSD, tarda 1 minuto en buscar una carpeta de 20GB con 26k archivos, código fuente y binarios mezclados. Se buscan 15k archivos; el resto probablemente se omita debido a que son archivos binarios. Las búsquedas posteriores en la misma carpeta están en el orden de segundos (hasta que las cosas se desalojan del caché).

El siguiente más cercano que encontré para la misma carpeta fue grepWin. Alrededor de 3 minutos. Excluí archivos de más de 2000 KB (predeterminado). La configuración "Incluir archivos binarios" parece no hacer nada en términos de acelerar la búsqueda, parece que los archivos binarios todavía se tocan (¿error?), Pero no se muestran en los resultados de búsqueda. Todas las búsquedas posteriores toman los mismos 3 minutos, no pueden aprovechar la memoria caché del disco duro. Si me limito a archivos de menos de 200k, la búsqueda inicial es de 2.5 minutos y las búsquedas posteriores son del orden de segundos, casi tan rápido como VS, en el caché.

Agent Ransack y FileSeek son muy lentos en esa carpeta, alrededor de 20 minutos, debido a la búsqueda en todo, incluidos los archivos binarios gigantes de varios gigabytes. Buscan a unos 10-20 MB por segundo según Resource Monitor.

ACTUALIZACIÓN: Agent Ransack se puede configurar para buscar archivos de ciertos tamaños, y usar el límite de <200 KB es 1: 15 minutos para una nueva búsqueda y 5 segundos para búsquedas posteriores. Más rápido que grepWin y tan rápido como VS en general. En realidad, es bastante agradable si desea mantener varias búsquedas en pestañas y no quiere contaminar la lista de carpetas buscadas recientemente por VS, y desea mantener la capacidad de buscar binarios, lo que VS no parece querer hacer. Agent Ransack también crea una entrada de menú contextual del explorador, por lo que es fácil de iniciar desde una carpeta. Igual que grepWin pero con una interfaz de usuario más agradable y más rápida.

Mi nueva configuración de búsqueda es Agent Ransack para contenidos y Everything para nombres de archivos (¡herramienta increíble, resultados instantáneos!).

Steve
fuente
3

Si no desea instalar herramientas que no sean de Microsoft, descargue STRINGS.EXE de Microsoft Sysinternals y realice un procedimiento como este:

@echo off
if '%1' == '' goto NOPARAM
if '%2' == '' goto NOPARAM
if not exist %1 goto NOFOLDER

echo ------------------------------------------
echo - %1 : folder
echo - %2 : string to be searched in the folder
echo - PLEASE WAIT FOR THE RESULTS ...
strings -s %1\* | findstr /i %2 > grep.txt
notepad.exe grep.txt

goto END

:NOPARAM rem - input command not correct
echo ====================================
echo Usage of GREP.CMD:
echo   Grep "SearchFolder" SearchString
echo Please specify all parameters
echo ====================================
goto END

:NOFOLDER
echo Folder %1 does not exist
goto END

:END rem - exit
FIBA
fuente