Universalwerkzeug sed

Einfaches Ersetzen in Dateien

Manchmal will einfach nur einen Wert an allen Stellen in einer Datei ersetzen:

sed -i 's/Alter Wert/Neuer Wert/g' /PfadZurDatei/Dateiname

Ersetzen von Text an gefundenen Stellen.

Manchmal muss es aber etwas aufwändiger sein. Wenn man z.B. einen String in einem Text sucht und in der gefundenen Zeile einen zweiten String ersetzen will. Hier am Beispiel einer NTP-Konfiguraton:

sed -i '/^server\ [0-3]\.debian\.pool\.ntp\.org/ s/server/#server/g' /etc/ntp.conf

Hier wird in der NTP-Konfiguration nach den Server-Einträgen gesucht (0.debian.pool.ntp.org, 1.debian.pool.ntp.org,2.debian.pool.ntp.org und 3.debian.pool.ntp.org). Diese Zeilen werden auskommentiert, um z.B. eigene NTP-Server für die Kerberos-Authentifizierung zu konfigurieren.

Wer öfter mit vim arbeitet, dem wird die Suchen-/Ersetzen-Formation bekannt vorkommen. Weitere Such-Ersetz-Möglichkeiten kann man hier nachlesen.