Finden und ersetzen Sie Blöcke von formatiertem Code in mehreren HTML-Dateien auf einem Linux-Server

786
RandyS

Viele meiner Websites bestehen aus Hunderten von HTML-Dateien, und ich muss oft Änderungen über "Suchen und Ersetzen" in allen Dateien gleichzeitig vornehmen. Ich verwende dazu eine Kombination aus FTP, dem Dateimanager von cPanel, Notepad ++ und Microsoft Expression Web. Ich würde gerne wissen, ob es einen effizienteren Weg gibt.

Ich verwende Notepad ++ für die meisten einfachen Suchen und Ersetzen sowie für reguläre Ausdrücke. In Notepad ++ können Sie jedoch nicht mehrere Textzeilen einfügen. Daher bin ich gezwungen, Expression Web zu verwenden, um größere Codeblöcke zu ersetzen, insbesondere wenn es viele Leerzeichen und Zeilenumbrüche gibt. Expression Web ist leider nicht die schnellste Sache der Welt, und eine Kombination davon und das Umschalten zwischen Programmen verlangsamt meinen Workflow ziemlich.

Ich weiß, dass die Leute grep via putty verwenden, aber das funktioniert nur mit einfachen Ersetzungen, nicht mit großen, mehrzeiligen Blöcken, die Sie nur kopieren und einfügen müssen. Ich möchte zwei Dinge wissen:

1) Was ist ein guter Ersatz für Expression Web, um große Textblöcke oder Codes in Windows "finden und ersetzen" zu können?

2) Gibt es eine Möglichkeit, diesen Prozess mit Dateien auszuführen, die sich noch auf dem Server befinden? Wenn nicht, kann man die Anzahl der Schritte mindestens reduzieren? Im Moment geht es viel zu viele Schritte:

  1. Erstellen eines Backups der Site in cPanel
  2. Herunterladen und Extrahieren der Sicherung
  3. Bearbeiten der Dateien
  4. Zippen Sie die bearbeiteten Dateien in ein einzelnes Archiv
  5. Archiv per FTP hochladen
  6. Zurück zu cPanel, um alte Dateien zu löschen und das neue Archiv zu extrahieren.
0
Machen Sie es über ssh: Bereiten Sie den Befehl `sed` /` awk` / `perl` vor und senden Sie ihn dann über ssh an jeden Server. Sie können sogar ein Skript erstellen, das automatisch alle Ihre Server durchläuft, oder eine Konfigurationsdatei verwenden, in der alle Server aufgelistet sind. Sie können die Sicherung direkt vor der Ersetzung durchführen: `ssh'Teer...; sed ... '`. simlev vor 6 Jahren 0

1 Antwort auf die Frage

0
Pavel Bernshtam

Sie können mehrzeiligen Text in Notepad ++ suchen und ersetzen, indem Sie \ n als Zeilenbegrenzer verwenden

Mit sed können Sie mehrzeiligen Text suchen und ersetzen: https://unix.stackexchange.com/questions/26284/how-can-i-use-sed-to-replace-a-multi-line-string

Mehrere Trennzeichen manuell für ganze Absätze von formatiertem Text eingeben? Anstatt zu kopieren und einzufügen? Ich würde wahrscheinlich bis zum nächsten Jahrhundert brauchen, um alle meine Projekte zu beenden, wenn ich es so machen würde. RandyS vor 8 Jahren 0