Ich habe eine Datei mit mehreren Instanzen von Text_1
und Text1
und muss beide Zeichenfolgen durch Text_A
und ersetzen TextB
.
Derzeit führe ich zwei Funktionen zum Suchen und Ersetzen für jede Datei aus, die sie findet Text_1
und ersetzt, Text_A
und die andere, die sie findet Text1
und ersetzt TextB
.
Gibt es eine Möglichkeit, dies alles auf einmal zu tun, anstatt zweimal "Suchen und Ersetzen" ausführen zu müssen?
Ich verwende Dreamweaver CS3, habe aber auch Notepad ++, regulären Notepad, OO Writer und MS Word, falls dies einfacher sein sollte. Idealerweise könnte ich dies in Dreamweaver oder Notepad ++ tun, aber ich bin offen dafür, etwas anderes herunterzuladen, um die Arbeit zu erledigen. Ich würde es vorziehen, keine Kommandozeilen-Sachen zu machen oder eine Batch-Datei zu erstellen (obwohl mir das bewusst ist, verstehe ich es nicht wirklich).
Falls die obige Beschreibung nicht klar ist, lassen Sie es mich so erklären ...
Ich möchte Find & Replace 1 Mal in 1 Dokument ausführen und möchte, dass es während dieser einen Find & Replace-Instanz ALLE der folgenden Aktionen ausführt:
- Suchen
Text_1
und Ersetzen durchText_A
- Suchen
Text1
und Ersetzen durchTextB
Ich versuche nicht , mehrere Dokumente gleichzeitig zu suchen und zu ersetzen.
Antworten:
Schauen Sie sich Sed an . Sie können Ihr Ziel problemlos mit nur einer Befehlszeile erreichen
sed -e "s/Text_1/TextA/" -e "s/Text1/TextB/" <your_file.txt>your_file_new.txt
quelle
Seit Notepad ++ 6.0 ist es tatsächlich ohne Skripte mit folgender Technik möglich:
Suchen: (Text_1) | (Text2)
Ersetzen: (? 1Text_A) (? 2TextB)
Die allgemeine Syntax lautet:
? 1 bezieht sich auf die erste erfasste Phrase und so weiter.
Ich habe dies aus der folgenden Antwort erhalten: /programming//a/16104946/287101
quelle
Mit Notepad ++ können Sie entweder
Öffnen Sie alle Dateien mit den Wörtern, die Sie ersetzen möchten, und verwenden Sie in allen geöffneten Dateien Suchen / Ersetzen
Verwenden Sie Suchen / Ersetzen in Dateien
Zeichnen Sie ein Makro auf, das die Such- und Ersetzungsoptionen ausführt, und geben Sie es wieder
quelle
Sie sollten Find & Replace besser zweimal ausführen, da zwei verschiedene Ersetzungen stattfinden. Es sollte jedoch nur einen sehr geringen Kompromiss bei der Verarbeitungszeit geben. Folgendes berücksichtigen:
Einmal Suchen & Ersetzen ausführen, Begriff für Begriff suchen:
Zum Laufen nehmen wir an, dass es linear ist und sagen, dass dies in O (n) Zeit läuft.
Sie möchten zwei verschiedene Begriffe finden. Das zweimalige Ausführen von Suchen & Ersetzen sieht folgendermaßen aus:
Dies würde O (2x1n) dauern oder doppelt so lange wie die Suche nach einem Begriff.
Die Suche nach zwei Begriffen mit zwei Ersetzungen würde theoretisch so aussehen:
Das Abrufen der Begriffe erfordert nicht so viel Rechenleistung. Sie suchen also im Wesentlichen nach zwei Suchsätzen für jeden Begriff. Dabei wird eine Zeit von O (1x2n) angegeben, die einmal ausgeführt wird, aber nach zwei Begriffen.
Während Sie Zeit sparen, wenn Sie nicht jeden Begriff zweimal laden, verbringen Sie mehr Zeit damit, jeden Begriff zweimal zu suchen, und da diese Funktion weniger häufig verwendet wird als das Suchen eines Begriffs mit einer Ersetzung, nehmen die Anwendungsentwickler einfach an, dass sie nicht schreiben diese Funktionalität.
quelle
Die Unterstützung für reguläre Ausdrücke in Notepad ++ ist stark eingeschränkt. Ohne den Wechseloperator gibt es keine Hoffnung, auch nur annähernd das zu erreichen, was Sie tun möchten. Sie benötigen
sed
einen Editor mit besserer Regex-Unterstützung.Quelle
Siehe auch
GNUWin32
sed
für Windowsquelle
Ich benutze TextCrawler zum Batch-Suchen und Ersetzen. (Ich verwende Notepad ++ zum Suchen / Ersetzen in mehreren Dateien, da es schneller als Textcrawler ist.) TextCrawler unterstützt reguläre Ausdrücke sowie das normale Suchen / Finden. Die Batch-Dateien können gespeichert und für die zukünftige Verwendung erneut geladen werden.
quelle
Sie können auch das ActiveX-Plugin (für Notepad ++) verwenden und ein benutzerdefiniertes Skript ausführen:
quelle
Dies funktioniert für alle Nummern (um alle Nummern aus dem Text / Artikel zu entfernen)
Drücken Sie Strg + H, um das Dialogfeld Suchen und Ersetzen zu öffnen.
Geben Sie im Feld "Suchen nach" Folgendes ein: ^ #
Lassen Sie das Feld "Ersetzen durch" leer.
Alles ersetzen.
quelle