Was ist der schnellste (genaue) Weg, um auf einem Windows-Computer nach einer Textfolge in Dateien zu suchen?
9
Wie der Titel schon sagt, ist dies der schnellste (genaueste) Weg, um herauszufinden, welche Zeilen welcher Dateien mit einer bestimmten Zeichenfolge übereinstimmen.
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.
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
Agent Ransack wirkt wie ein Zauber. Laden Sie es hier herunter .
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:
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. :-)
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!
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.
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:
Bei der gesuchten Zeichenfolge wird zwischen Groß- und Kleinschreibung unterschieden. "Enterprise" und "Enterprise" finden nicht dieselbe Zeichenfolge.
Antworten:
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 :)
quelle
Agent Ransack wirkt wie ein Zauber. Laden Sie es hier herunter .
quelle
Findstr
arbeitet immer für mich Es kann Text * Platzhalter oder Regex für die Suchzeichenfolge verwenden.Findstr /?
für mehrquelle
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/
quelle
Hier ist eine Powershell-Lösung:
gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString
Das
-r
Ingci
ist rekursiv und natürlich optional, ebenso wie die beiden Dateierweiterungsfilter. Ein nützlicher Parameter vonSelect-String
ist,-list
der 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
quelle
-filter "*.cpp","*.h"
, dass mehrere Erweiterungen akzeptiert werden? Dies sollte eher lesen-include ("*.cpp","*.hpp")
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. :-)
quelle
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!
quelle
Eine weitere
grep
Implementierung für Windows durch die berühmten Schildkröten-SVN-Entwickler:grepWin
quelle
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.
quelle
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.
quelle