Tools zum Suchen nach Zeichenfolgen in Dateien ohne Indizierung [geschlossen]

170

Ich muss einige Verbindungszeichenfolgen in einer unglaublich alten Legacy-Anwendung ändern, und die Programmierer, die sie erstellt haben, hielten es für eine großartige Idee, die gesamte App überall mit Verbindungszeichenfolgen zu versehen.

Die Suche nach "aktuellem Projekt" in Visual Studio ist unglaublich langsam und ich vertraue der Windows-Suche nicht.

Also, was ist das beste kostenlose, nicht indizierte Textsuchwerkzeug da draußen? Es sollte lediglich eine Liste mit Dateien zurückgeben, die die gewünschte Zeichenfolge in einem Ordner und seinen Unterordnern enthalten.

Ich verwende Windows 2003 Server.

Kitsune
quelle
010 EditorDurchsucht riesige Dateien in 0 Sekunden.
Morteza Ziyae
Depeche View schlägt zweifellos alles andere auf dieser Seite. Es gibt einige Verknüpfungen, die Sie einige Minuten benötigen, um die Hilfedatei zu lesen und zu lernen. stahlworks.com/dev/depeche-view.html
BVernon
Ich benutze dies auch oft, aber es zwingt Sie, auf jede Ergebnisdatei zu klicken, um die Inhaltsübereinstimmungen im rechten Bereich zu sehen. Auch der Dateiinhalt im rechten Bereich ist nicht zoombar (Schriftgröße ist zu klein).
Meryan
Dies ist eine gute Frage für das Software-Engineering, aber auf SO offtopic. Welche SE-Netzwerkseite ist themenbezogen? Siehe zB SE.SE-Fragen zu 'Suchcodebasis'. Wir sollten diese Frage migrieren, damit sie wieder geöffnet werden kann!
smci
1
Schauen Sie sich File Content Finder im App Store an (Haftungsausschluss - ich bin der Entwickler). Es kann in Text- / Quelldateien, aber auch in PDF-, Dokument- (x), XLS- (x) und sogar gescannten JPG- / PNG-Dateien suchen
Geo Systems

Antworten:

60

Ursprüngliche Antwort

Windows Grep macht das wirklich gut.

Bearbeiten: Windows Grep wird vom Entwickler nicht mehr gewartet oder zur Verfügung gestellt. Ein alternativer Download-Link ist hier: Windows Grep - alternativ

Aktuelle Antwort

Visual Studio Code bietet hervorragende Funktionen zum Suchen und Ersetzen von Dateien. Es ist extrem schnell, unterstützt Regex und Live-Vorschau vor dem Austausch.

Geben Sie hier die Bildbeschreibung ein

RedFilter
quelle
10
ss64.com/nt/findstr.html
JohnnyFromBF
10
Auf meinem Computer (Windows 7) stürzte es zweimal ab. Ich werde etwas anderes versuchen.
B. Clay Shannon
2
Es ist alt, es ist auch für mich abgestürzt. Auch wenn es für einige Tore nicht perfekt ist, ist grepWin imoh besser
Paolo
9
AstroGrep ist auch schnell und es ist no-istall
Zorb
Funktionierte gut für mich unter Windows 7 - keine Abstürze
w5m
364

Ich bin ein Fan des Dialogfelds " In Dateien suchen" in Notepad ++ . Bonus : Es ist kostenlos.

Geben Sie hier die Bildbeschreibung ein

BQ.
quelle
Was leider nicht alle Microsoft Word-Dateien durchsuchen kann oder will. Etwas über den Unterschied zwischen ".doc" und ".docm", vermute ich
Carl Witthoft
11
@CarlWitthoft .docm, wie .docx, .xlsmund .xlsxsind tatsächlich komprimierte XML-Dokumente.
Ian Boyd
1
Es funktioniert gut für kleine Ordner mit einer normalen Anzahl von Dateien, hängt für große Ordner mit vielen Dateiordnern, zumindest wenn ich meinen Laptop benutze. Etwas schneller bei Verwendung eines leistungsstarken PCs. Darüber hinaus können während der Suche keine anderen Dateien geöffnet werden.
Mohammed Joraid
Ich habe meinen Text gefunden. Ich durfte jedoch in den Ergebnissen nicht auswählen, welche Werte ersetzt und welche beibehalten werden sollen. Alles oder nichts?
ofer.sheffer
5
Hatte keine Ahnung, dass dies sogar eine Option in Notepad ++ war. Tolle Lösung, um fehlende Dateien zu finden! Es scheint jedoch Probleme mit großen Dateien zu geben. Gelegentlich wird der Fehler "Datei zu groß zum Öffnen" angezeigt.
John August
167

Es gibt auch ein in Windows integriertes Programm namens, findstr.exemit dem Sie innerhalb von Dateien suchen können.

>findstr /s "provider=sqloledb" *.cs
JohnnyFromBF
quelle
3
Einfach und effizient!
Markus Fantone
Dies ist viel schneller als Windows Explorer und hat den gesuchten Text tatsächlich gefunden, während die Verwendung von Windows Explorer für mich keine Suchergebnisse ergab. Vielen Dank.
mbomb007
1
Für mich die beste Antwort zu diesem Thema, da Sie nichts installieren müssen. In meinem Fall musste ich einige Argumente ergänzen, da zu viele Informationen auf dem Bildschirm angezeigt werden. Das Argument / M listet nur den Dateinamen auf, der die Informationen enthält, nach denen ich gesucht habe. Geben Sie "findstr /?" Ein, um auf das Handbuch des Befehls findstr zuzugreifen. in der Konsole.
Alexandre Ribeiro
Dies ist ein großartiger Dienstprogramm, aber es scheint, dass es keine kyrillischen Zeichen in Dateinamen lesen kann. Zum Beispiel:FINDSTR: Cannot open ???????????.txt
Artem Russakovskii
1
findstr unterstützt keinen UTF16-Text.
David Bremner
34

Ich mag AstroGrep. Die Ergebnisse werden in einer Liste angezeigt. Ein Klick auf eine Zeile zeigt Ihnen die gesamte Zeile als Vorschau, die den Treffer hervorhebt. Es scheint ziemlich schnell, schlank und kostenlos zu sein. Getestet unter Windows 7, 8, 10 und Windows Server 2008 R2. Ermöglicht reguläre Ausdrücke.

Neuester AstroGrep Screenshot

AstroGrep ist ein Microsoft Windows GUI-Dienstprogramm zur Dateisuche (grep). Zu den Funktionen gehören reguläre Ausdrücke, vielseitige Druckoptionen, das Speichern der zuletzt verwendeten Pfade und eine "Kontext" -Funktion, die sich sehr gut zum Betrachten von Quellcode eignet

Referenz: AstroGrep

Anytoe
quelle
7
Von allen anderen hier aufgeführten ist dies die einzige, mit der Ausschlussmuster für Ordner angegeben werden können. Sehr hilfreich, wenn Sie versuchen, Ordner wie node_modulesoder zu überspringen bower_components.
Mrchief
1
Sehr gute Software, schnell, konfigurierbar und zeigt Dateien zusammen mit dem zugehörigen Kontext
HanniBaL90
1
Und 'schnell' verdient eine zweite Erwähnung ...self == happy
Cssyphus
9

Die Suche von Visual Studio in Ordnern ist bei weitem die schnellste, die ich gefunden habe.

Ich glaube, es durchsucht intelligent nur Textdateien (nicht binär), und nachfolgende Suchvorgänge im selben Ordner sind im Gegensatz zu den anderen Tools extrem schnell (wahrscheinlich passen die Textdateien in den Windows-Festplatten-Cache).

VS2010 auf einer normalen Festplatte ohne SSD benötigt 1 Minute, um einen 20-GB-Ordner mit 26.000 Dateien, Quellcode und Binärdateien zu durchsuchen. 15.000 Dateien werden durchsucht - der Rest wird wahrscheinlich übersprungen, da es sich um Binärdateien handelt. Nachfolgende Suchvorgänge im selben Ordner erfolgen in der Größenordnung von Sekunden (bis Inhalte aus dem Cache entfernt werden).

Der nächstgelegene, den ich für denselben Ordner gefunden habe, war grepWin. Etwa 3 Minuten. Ich habe Dateien ausgeschlossen, die größer als 2000 KB sind (Standard). Die Einstellung "Binärdateien einschließen" scheint die Suche nicht zu beschleunigen. Es sieht so aus, als ob Binärdateien immer noch berührt werden (Fehler?), Aber sie werden nicht in den Suchergebnissen angezeigt. Nachfolgende Suchvorgänge dauern alle die gleichen 3 Minuten - können den Festplatten-Cache nicht nutzen. Wenn ich mich auf Dateien mit weniger als 200 KB beschränke, beträgt die anfängliche Suche 2,5 Minuten, und die nachfolgenden Suchvorgänge liegen in der Größenordnung von Sekunden, ungefähr so ​​schnell wie VS - im Cache.

Agent Ransack und FileSeek sind beide in diesem Ordner sehr langsam, etwa 20 Minuten, da sie alles durchsuchen, einschließlich riesiger Binärdateien mit mehreren Gigabyte. Sie suchen laut Resource Monitor mit etwa 10-20 MB pro Sekunde.

UPDATE: Agent Ransack kann so eingestellt werden, dass Dateien bestimmter Größen durchsucht werden. Bei einem Grenzwert von <200 KB sind es 1: 15 Minuten für eine neue Suche und 5 Sekunden für nachfolgende Suchvorgänge. Schneller als grepWin und insgesamt so schnell wie VS. Es ist eigentlich ziemlich nett, wenn Sie mehrere Suchvorgänge in Registerkarten behalten möchten und die Liste der kürzlich durchsuchten VS-Ordner nicht verschmutzen möchten und die Möglichkeit behalten möchten, Binärdateien zu durchsuchen, was VS anscheinend nicht möchte. Agent Ransack erstellt auch einen Explorer-Kontextmenüeintrag, sodass Sie ihn einfach aus einem Ordner heraus starten können. Wie grepWin, aber schönere Benutzeroberfläche und schneller.

Mein neues Suchsetup ist Agent Ransack für Inhalte und Alles für Dateinamen (großartiges Tool, sofortige Ergebnisse!).

Steve
quelle
3

Wenn Sie keine Nicht-Microsoft-Tools installieren möchten, laden Sie STRINGS.EXE von Microsoft Sysinternals herunter und führen Sie ein Verfahren wie das folgende aus:

@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
quelle