Software zum Ersetzen mehrerer Textzeichenfolgen in mehreren Dateien

Ich suche nach Windows-Software, die mehrere Textzeichenfolgen in mehreren Dateien gleichzeitig ersetzen kann.

Ich habe einige Wörter, die ich in Tausenden von Textdateien ersetzen möchte. Zum Beispiel möchte ich ab, abc, abcd, abcde, abcdef, abcdefg, abcdefgh ersetzen.

Ich möchte es nicht Wort für Wort tun (z. B. mit der Notepad ++ Option In Dateien ersetzen bei jeder Ersetzung) - ich möchte alle diese Wörter gleichzeitig ersetzen. Ich möchte es durch ein allgemeines Wort ersetzen; Lass uns Hallo sagen".

Gibt es eine Software, die das kann?

Sie können niemals alle Wörter in allen Dateien gleichzeitig ersetzen, nur eine Datei nach der anderen, möglicherweise sehr schnell. Dies liegt an den Engpässen beim Lesen der Dateien von der Festplatte usw.
Also wird ab durch Hello ersetzt und abc durch Hello usw.?

Antworten (9)

Sie können dies mit Notepad++ tun, ohne Ihre Dateien zu öffnen:

  • Öffnen Sie Notepad++
  • Drücken SieCtrl + H
  • Wechseln Sie zum Reiter „In Dateien suchen“
  • Geben Sie Ihren Suchtext und die Ersetzung an
  • Legen Sie den Ordner fest, in dem sich Ihre Dateien befinden
  • Abhängig von Ihren Anforderungen können Sie einige Filter für Ihre Dateien festlegen (z. B. *.txt, *.html), Sie können "in allen Unterordnern" aktivieren, den "Suchmodus" festlegen usw.
  • Klicken Sie auf „In Dateien ersetzen“

Seien Sie jedoch sicher, bevor Sie mit dem letzten Schritt fortfahren, da er irreversibel ist. Vielleicht möchten Sie zuerst auf "Alle suchen" klicken, um Ihre Übereinstimmungen zu überprüfen.

Je nach Größe und Anzahl Ihrer Dateien kann es eine Weile dauern.

Ersetzen Sie Dateien mit Regexp

Entschuldigen Sie die späte Antwort, aber bitte lesen Sie meine Frage noch einmal. Ich weiß, wie es mit Notepad ++ geht, aber ich kann immer nur einen Text auf einmal ersetzen. Wenn ich zum Beispiel 100 verschiedene Wörter ersetzen möchte, sollte ich diese Ersetzung 100 verschiedene Male machen. Was ich gefragt habe, ist das nicht. Ich möchte diese 100-Wörter-Ersetzung mit einem einzigen Klick durchführen
Okay, ich habe den Screenshot aktualisiert, damit er mit dem Beispiel übereinstimmt, das Sie gegeben haben. Sie können dies immer noch mit der Funktion zum Ersetzen in Dateien in Notepad ++ tun, aber Sie müssen den Suchmodus auf "Regulärer Ausdruck" einstellen und das Regex-Muster formatieren, das mit allen Zeichenfolgen übereinstimmt, die Sie ersetzen möchten. In Ihrem Beispiel möchten Sie also ab, abc, abcd, ... durch "Hallo" ersetzen, dann wäre Ihr Muster "^(.*)ab[az]+(.*)$" (schließen Sie die umgebenden Anführungszeichen aus). und die Ersetzung wäre \1Hallo\2 (\1 ersetzt die erste Zeichenfolge, die von () umgeben ist, \2 \ die zweite und so weiter).

Sie können die Microsoft Windows-Ports von GNU awk oder sed verwenden, die sowohl CLI als auch Open Source sind. Ein häufig verwendeter Port: http://gnuwin32.sourceforge.net/packages.html

Danke Frank für den Kommentar. Werde das auch versuchen

Ich habe das kostenlose gsar verwendet , um mehrere Dateien nacheinander zu suchen oder zu suchen/zu ersetzen.

In Ihrer Situation würde es alle von Ihnen angegebenen Such- und Ersetzungskriterien durchlaufen. Ich würde wahrscheinlich mit abcdefg, abcdef, abcde usw. beginnen, wie andere gesagt haben, sichern Sie Ihren Ordner, falls Ihre Arbeit unerwünschte Ergebnisse hat.

Ich habe dieses Tool in der Vergangenheit verwendet, um:

  • Urheberrechtsjahr auf Websites ändern
  • Ändern Sie die Hex-Werte für den richtigen Wagenrücklauf-Zeilenvorschub in Fenstern
  • Suchen Sie in Dateien nach Nicht-ASCII-Zeichen

RProgramm ist richtig.

Ich bin Autor des Plugins FindInFile (FiF) für den CudaText-Editor.

  1. FiF kann in der Tat machen, was Sie wollen.FiF

  2. Das FiF füllt eine Berichtsdatei, um alle gefundenen Fragmente und alle Ersetzungen anzuzeigen. Beispielbericht. "(!N)" markiert Zeile mit gefundenem Fragment, "(=N)" markiert Zeile mit Ersatz.Geben Sie hier die Bildbeschreibung ein

  3. In CudaText lebt die Berichtsdatei . Sie können zum Ersetzungspunkt in der Quelldatei springen.

FiF-Plugin ist stabil. Siehe github.com/kvicchans/cuda_find_in_files, um weitere Informationen zu erhalten und Fragen zu stellen.

Es scheint, dass der CudaText- Editor dies tun kann. Es ist kostenlos, Windows/Linux. Benötigtes Plugin: "Find in Files" (es befindet sich im AddonManager in CudaText).

Geben Sie im Dialogfeld "In Dateien suchen" eine solche Zeichenfolge ein, um zu suchen: (ab|def|fgfg)- Dies ist Regex, also aktivieren Sie die Option "Regex" (es ist das Symbol .*im Dialogfeld).

Probieren Sie Text Replacer aus , hier sind einige Screenshots:

Textersetzer

Textersetzer

Textersetzer

Textersetzer

Abhängig von der Größe der Dateien und Ihren PC-Spezifikationen sollte dies mit Notepad ++ möglich sein.

  1. Öffnen Sie alle Dateien mit Notepad++ (oder nur 200 oder so, abhängig von Ihrem PC)
  2. STRG + H
  3. Setzen Sie find what auf ab|abc|abcd|abcde|abcdef|abcdefg (was auch immer Sie zu ersetzen versuchen, trennen Sie es mit |. Es ist eine einfache Regex, ich empfehle, das nachzuschlagen)
  4. Setzen Sie Ersetzen durch auf das, was Sie wollen (in Ihrem Beispiel Hallo)
  5. Stellen Sie den Suchmodus auf „Regulärer Ausdruck“
  6. Drücken Sie Alle in allen geöffneten Dokumenten ersetzen
Das OP sagte ausdrücklich, er wolle nicht alle Dateien öffnen müssen, um dies zu tun - es gibt Tausende davon
Ich möchte keine Dateien öffnen. Aber wenn dies in geöffneten Dateien funktioniert, sollte es meiner Meinung nach auch in Dateien funktionieren. nicht wahr? werde versuchen. Vielen Dank für Ihren Kommentar.

Sie können die Advanced Find and Replace-Software von http://www.abacre.com/afr/ verwenden . Bei der Batch-Ersetzung können Sie so viele Wörter oder Zeilen eingeben, wie Sie benötigen, und es werden alle Dateien in einem Ordner geändert, ohne den zu öffnen Dateien.

https://www.powergrep.com/list.html

Die meisten grep-Tools können nur nach einem einzigen regulären Ausdruck suchen. Mit PowerGREP können Sie bis zu fünf Sätze von Suchbegriffen verwenden. Jeder Satz kann eine unbegrenzte Anzahl regulärer Ausdrücke verwenden.

Nicht frei, aber unsere Zeit auch nicht