Ich hatte einen kleinen Tippfehler in meinen html-Dateien sodass die Serverside includes nicht funktioniert haben.
Da es rund 20 Dateien waren und ich nicht jede Datei einzeln ändern wollte, habe ich mir von Moritz (übel der Nerd :)) zeigen lassen, wie man das wie ein Profi macht.

Vorher:

<!-- #include

Nachher:

<!--# include

Die benutzten Commands:

find . -name '*.html' | xargs sed -i 's/<!-- #/<!--# /'

Erklärung:

  • find
    Wie der Name schon sagt, kann man mit diesem Befehl nach wirklich allem suchen.
    Mit dem Punkt werden alle Dateien ab dem aktuellen Verzeichnis durchsucht. Wir wollen aber nur html-Dateien was den letzten Teil des ersten Befehls erklärt.
  • | (Pipe)
    Mit dem Pipe-Operator kann man die Ausgabe gleich in dem nächsten Befehl weiterverwenden.
  • xargs
    Dieser Befehl nimmt die Daten aus dem Standardinput (danke Pipe!) und führt den nachfolgenden Befehl (bei uns sed) mit den Daten aus, welche uns aus dem stdin zugeflogen kommen.
  • sed
    Wir haben ja schon alle Dateien, die wir bearbeiten wollen, deshalb fehlt uns nur noch, dass wir die Ersetzung durchführen. Das geht jetzt mit dem Command sed. Das Flag i macht, dass die Dateien in-place editiert werden. Der letzte Part mit dem s bedeutet, dass wir etwas ersetzen möchten. Die Zeichen zwischen den Trennzeichen (hier Slashes) geben zuerst an, was wir ersetzen möchten und dann durch was es ersetzt wird.

Wer mehr über die Commands erfahren möchte: RTFM! (man <command>)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.