Ich musste heute auf einem Linux-System ohne grafische Oberfläche eine Konfigurationsdatei anpassen. Hierbei sollte der alte Servername an vielen Stellen gegen den neuen Hostname ausgetauscht werden. Natürlich kann man die einzelnen Fundstellen von Hand editieren, aber im „Vi“ gibt es einen schönen Ausdruck, mit dem ein String gesucht und ersetzt werden kann.
Wer „Vi“ nicht kennt, es handelt sich hierbei um einen Editor (der über extrem viele Shortcuts und Anpassungsmöglichkeiten verfügt), der auf jedem Linux-/Unix-System zu finden ist. Die Bedienung ist etwas gewöhnungsbedürftig, ermöglicht aber nach etwas Einarbeitungszeit extrem schnelles Editieren und Coden.
Nun aber zum „Suchen und Ersetzen“ mit vi:
Möchte man alle Fundstellen gegen einen neuen String austauschen, so bringt folgendes Kommando das gewünschte Ergebnis:
:%s/string_alt/string_neu /g
Möchte man nur eine Zeichenkette austauschen, so lässt man einfach das „/g“ weg.
Da hierbei reguläre Ausdrücke verwendet werden, ist es wichtig vor speziellen Zeichen, wie z.B. einem Punkt, den so genannten Escapecharacter einzufügen. Hierbei handelt es sich um einen Backslash „\“. Statt . würde man also \. eingeben.
Wichtig !!!
Seid vorsichtig mit Befehlen im Terminal, ausgeführte Befehle können euer System dauerhaft schädigen und zu Datenverlusten führen. Also verschafft euch zuerst das notwendige Wissen und verwendet erst dann das Terminal. Ich hafte nicht für Schäden, die durch die Anwendung meiner Howtos entstehen.
Wichtig !!!
Seid vorsichtig mit Befehlen im Terminal, ausgeführte Befehle können euer System dauerhaft schädigen und zu Datenverlusten führen. Also verschafft euch zuerst das notwendige Wissen und verwendet erst dann das Terminal. Ich hafte nicht für Schäden, die durch die Anwendung meiner Howtos entstehen.
Links: