Ich suche nach einem OS X-Tool, mit dem ich eine Suchzeichenfolge in mehreren Dateien suchen und ersetzen kann. Die Anforderungen sind die folgenden:
Ich weiß, dass einige Texteditoren wie BBEdit diese Funktionalität haben, aber ich würde ein leichtes Tool bevorzugen, bei dem ich die Dateien nicht zuerst zum Bearbeiten öffnen muss.
Wenn es keine Tools gibt, die diese Anforderungen erfüllen, würde ich auch eine Befehlszeilenalternative in Betracht ziehen. Ich weiß das perl
und sed
unterstütze so etwas - eine Lösung, die ich entweder als Bash- Alias oder als Funktion definieren kann, wäre in diesem Fall willkommen.
Normalerweise verwende ich TextMate :
TextMate (1) ist/war ein Kaufprodukt, aber TextMate 2 befindet sich derzeit in aktiver OpenSource-Entwicklung auf gitHub und kann kostenlos verwendet werden.
Sublime Text ist das, was ich benutze, es ist großartig!
Erhabener Text:
Sie müssen die Dateien nicht mit BBEdit öffnen. Sie zeigen es einfach auf einen Ordner. Es ist ein sehr leistungsfähiges Werkzeug, eines, das ich oft mit einer großen Anzahl von HTML-Dateien verwendet habe.
Zusätzlich zu den anderen Lösungen, die einen Texteditor verwenden, habe ich FAR - Find and Replace gefunden , ein plattformübergreifendes Tool zum Suchen und Ersetzen. Es ist nicht das schönste, aber es sieht so aus, als ob es das tut, wonach ich suche.
Ich verwende oft Ruby-Skripte wie diese:
Dir["**/*.txt"].each { |f|
IO.write(f, IO.read(f).gsub(/search/, "replace"))
}
Oder Sie können gets(nil)
mit verwenden -i
:
ruby -i -e 'print gets(nil).gsub(/search/, "replace")' *.txt
Wenn Sie Bash 4 installieren und globstar aktivieren, können Sie auch **
in Shells verwenden:
sed -i '' 's/search/replace/g' **/*.txt
Dies wurde genau sed
geschrieben und erfüllt alle Ihre Anforderungen, außer dass die Lernkurve etwas steil ist.
Probieren Sie für eine sanftere Lernkurve TextWrangler von BareBones aus. Es verwendet die Text-Engine BBEdit und hat meines Erachtens die volle Such- und Ersetzungsfunktionalität seines großen Bruders
sed
. Können Sie ein Beispiel dafür geben, wie sed
Text in einer Reihe von Dateien ersetzt wird, wie in der (derzeit) obigen ruby
Antwort?Werfen Sie einen Blick auf meine App Suchen und Ersetzen . Sie können es für mehrere Dateien oder Verzeichnisse verwenden, Ihre Such-/Ersetzungszeichenfolgen speichern und reguläre Ausdrücke verwenden.
kein Hang
Michael