2 Stimmen

Was ist das beste Werkzeug oder die beste Methode, um nach einem bestimmten Wort in einer Codebasis zu suchen?

Welches Werkzeug oder welche Methode empfehlen Sie, um Werte in Ihrem Code zu finden und zu ersetzen? Wenn der Code unter Linux/Unix läuft, sind find und grep die beste Methode?

7voto

Andy Lester Punkte 86147

Werfen Sie einen Blick auf ack das für die Suche in großen Codebasen konzipiert ist.

Zum Ersetzen siehe die Perl-Flags -i, -p und -e. Sie können Dinge tun wie:

$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)

um alle Instanzen von thisword durch thatword in allen .html-Dateien des Baums zu ersetzen.

0 Stimmen

Sie könnten auch ack für den find-Teil in Ihrem replace-Beispiel verwenden: $ perl -i -p -e's/ \bthisword\b /thatword/g' $(ack -f --html)

1voto

biozinc Punkte 4531

Ich nehme an, Sie wollen eine Variable umbenennen.

Das hängt davon ab, wie der Code aufgebaut ist. Für C# ist das Umbenennungswerkzeug von Visual Studio sehr gut. Denken Sie daran, dass die Umbenennung Hand in Hand mit dem Compiler/Interpreter arbeiten muss, damit Sie sicherstellen können, dass Sie die Änderung nur im richtigen Bereich vornehmen.

Wenn es sich um ein sehr einfaches Suchen/Ersetzen handelt, würde der bescheidene Notizblock sicherlich eine gute Arbeit leisten?

1voto

Ken Gentle Punkte 13137

find y grep findet das gesuchte Wort, aber um es zu ersetzen, müssen Sie es mit sed , awk oder Ihren bevorzugten Stream-Bearbeitungsfilter.

groovy , python , perl führen alle Such- und Ersetzungsoperationen aus - verwenden Sie Ihren Favoriten oder wählen Sie eine aus, die Sie lernen möchten.

Für Operationen an einer Codebasis verwende ich find | sed für einfache Operationen ( cygwin ist Ihr Freund) und die Suchen/Ersetzen-Funktion der IDE mit Regex-Unterstützung für komplexere Operationen. Eclipse, Idea, Visual Studio und sogar SQL Server Manglement Studio verfügen über leistungsstarke Funktionen zum Suchen und Ersetzen. Die schlechte Nachricht ist, dass nicht alle von ihnen die gleiche Regex-Syntax verwenden.

1voto

levhita Punkte 2161

Werfen Sie einen Blick auf PowerGrep... es hat überall in SO Werbung. Ich fange an, es zu wollen, auch wenn ich es nicht wirklich brauche.

PD: Es gibt eine kostenlose 15-Tage-Demo, wenn es sich also um einen kleinen Auftrag handelt, können Sie die Demo nutzen.

1voto

Sen Punkte 147

Dies ist nur ein Hinweis auf Andys oben akzeptierte Antwort. Ich konnte dies aufgrund der geringeren Reputation nicht als Kommentar hinzufügen.

Verwenden Sie ! als Trennzeichen, wenn es schwierig ist, die Zeichenketten zu trennen

z.B. $ perl -i -p -e's! \bthisword\b !thatword!g' $(find . -name *.html)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X