Was ist der schnellste (genaue) Weg, um auf einem Windows-Computer nach einer Textfolge in Dateien zu suchen?


Antworten:


11

Notepad ++ verfügt über die Option "In Dateien suchen", die sich im Menü "Suchen" befindet. Auf diese Weise können Sie mehrere Dateien in einem Ordner durchsuchen (Sie können den Ordner angeben) und die Zeilennummern jeder Datei anzeigen . Sie können umschalten, ob Unterordner und versteckte Ordner in der Suche enthalten sind, und Sie können auch mit \ t \ n usw. suchen und bei Bedarf mit regulären Ausdrücken suchen.

Notepad ++ ist ein Windows-Programmiereditor (keine IDE) und auch Open Source.

(Mir ist klar, dass Sie höchstwahrscheinlich von Notepad ++ gehört haben, aber ich erwähne es hier nur als Option, falls Sie diese spezielle Funktion nicht kennen und für andere, die später über diesen Thread stolpern.

Prost :)


Ja, ich muss zugeben, ich habe dafür schon einmal Notepad ++ verwendet.
Jon Cage

1
@JonCage es ist jemand in diesem Thread sevenforums.com/software/... das spricht auch , wie Sie sagen : „Ich gebe zu “ , wenn es um nützliche Dinge geht. Das ist eine äußerst seltsame Art zu sprechen. Vielleicht möchten Sie diese Person treffen. Vielleicht dein Zwilling.
Barlop

Notepad ++ ist großartig. Andere Programmierer-Editoren wie SciTE haben ähnliche Funktionen.
TimothyAWiseman


5

Findstrarbeitet immer für mich Es kann Text * Platzhalter oder Regex für die Suchzeichenfolge verwenden. Findstr /?für mehr


5

Auf Unix-Systemen würden die Leute höchstwahrscheinlich grep verwenden, um dies zu tun. Warum also nicht Windows Grep verwenden?

http://www.wingrep.com/


Windows Grep kann manchmal instabil werden, aber es ist das schnellste Suchprogramm, das ich jemals verwendet habe.
Yakatz

@yakatz Vielen Dank für die Erwähnung einer möglichen Instabilität mit Windows Grep. Ich werde nach einem anderen Grep / Replace-Tool suchen!
Pacoverflow

wingrep wird eingestellt, grepwin ist jedoch noch verfügbar und funktioniert sehr gut.
Techturtle

3

Hier ist eine Powershell-Lösung:

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

Das -rIn gciist rekursiv und natürlich optional, ebenso wie die beiden Dateierweiterungsfilter. Ein nützlicher Parameter von Select-Stringist, -listder nur die erste Instanz einer Übereinstimmung in einer Datei meldet, anstatt jedes Vorkommen pro Datei anzugeben.

Vielleicht möchten Sie jede Datei, in der eine Übereinstimmung gefunden wird, sofort öffnen? Nun, die folgende kleine Änderung an den oben genannten ist sehr nützlich, abhängig davon, wie Sie Ihre Standarddateizuordnung haben:

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


Ich wollte das Gleiche
posten

Sind Sie sicher -filter "*.cpp","*.h", dass mehrere Erweiterungen akzeptiert werden? Dies sollte eher lesen-include ("*.cpp","*.hpp")
Mloskot

2

Während einer Lokalisierung einiger SWs verwende ich DocFetcher , um dieselben Zeichenfolgen in zuvor übersetzten Dateien zu suchen. Es ist kostenlos und Open Source, muss jedoch zuerst einen Index erstellen. Probier es einfach. :-)


1

Verwenden Sie "Strings" von M $ . Sie haben vor ein paar Jahren einige sehr gute Dienstprogramme von Sysinternals gekauft. Erfordert keine Installation, legen Sie es einfach auf der Box ab und führen Sie es für die Syntax aus. Einfach zu bedienen und großartig!


1

Eine weitere grepImplementierung für Windows durch die berühmten Schildkröten-SVN-Entwickler:

grepWin


0

Wenn Sie mit der Befehlszeile / mit Linux zufrieden sind. Könnte ich vorschlagen, eine Version von grep für Windows zu installieren?

cygwin ist ein ziemlich praktischer Weg, um dies zu erreichen, und bietet Ihnen eine vollständige Linux-Umgebung mit Bash-Shell und einem RXVT-Terminal. Andernfalls, wenn Sie nur die Tools möchten, gibt es gnuwin32, aber dann bleiben Sie bei der Windows-Eingabeaufforderung cmd.exe hängen.

Microsoft hat tatsächlich eine eigene Version der Unix-Tools als Download, aber sie schienen im Vergleich zu den Gnu-Ports, als ich sie ausprobierte, ziemlich langsam zu sein. Sie werden sie auch mit Windows 8 verschrotten.


0

Auf diese Weise suche ich nach Textzeichenfolgen in der Windows-Registrierung oder nach Dateien auf meinem Windows XP-Computer. Nehmen wir an, ich möchte die Zeichenfolge "Enterprise" in einer Nur-Text-Datei auf dem Laufwerk c: finden und dann die Ausgabe in eine Datei namens search_result.txt in c: \ windows \ temp schreiben

Öffnen Sie eine Eingabeaufforderung und geben Sie Folgendes ein:

findstr "Enterprise" c: *. txt> c: \ windows \ temp \ search_result.txt

Bei der gesuchten Zeichenfolge wird zwischen Groß- und Kleinschreibung unterschieden. "Enterprise" und "Enterprise" finden nicht dieselbe Zeichenfolge.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.