Wie der Titel schon sagt, ist dies der schnellste (genaueste) Weg, um herauszufinden, welche Zeilen welcher Dateien mit einer bestimmten Zeichenfolge übereinstimmen.
Insbesondere suche ich .cpp
und .h
Dateien.
Wie der Titel schon sagt, ist dies der schnellste (genaueste) Weg, um herauszufinden, welche Zeilen welcher Dateien mit einer bestimmten Zeichenfolge übereinstimmen.
Insbesondere suche ich .cpp
und .h
Dateien.
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 :)
Agent Ransack wirkt wie ein Zauber. Laden Sie es hier herunter .
Auf Unix-Systemen würden die Leute höchstwahrscheinlich grep verwenden, um dies zu tun. Warum also nicht Windows Grep verwenden?
Hier ist eine Powershell-Lösung:
gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString
Das -r
In gci
ist rekursiv und natürlich optional, ebenso wie die beiden Dateierweiterungsfilter. Ein nützlicher Parameter von Select-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
-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. :-)
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:
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.