|
|
Globales Ersetzen
Betrachten wir das Sed-Kommando:
s/Unix/Linux
Was passiert, wenn wir dieses Kommando auf folgende Zeile
anwenden:
Unix ist ein Betriebssystem, welches
bereits seit 1969 existiert.
Dies kann z.B. durch folgenden Aufruf in einer Shell realisiert
werden:
echo "Unix ist ein
Betriebssystem, welches bereits seit 1969 existiert." | sed
"s/Unix/Linux"
Als Ausgbae erhalten wir, wie erwartet, eine Zeile in der Unix mit
Linux ersetzt wurde:
Linux ist ein Betriebssystem, welches
bereits seit 1969 existiert.
Eine Aussage, die ja im Prinzip nicht ganz falsch ist, wenn man
bedenkt, dass Linux ja auf Unix basiert. Aber kommen wir zu
unserem Sed-Befehl zurück. Was würde aber passieren, wenn in
der gleichen Zeile zweimal das Wort Unix vorkäme, also z.B.
Unix ist ein Betriebssystem, welches
bereits seit 1969 existiert und Unix wurde von
In diesem Fall wird nur das erste Vorkommen von Unix durch Linux
ersetzt und wir erhalten die Zeile:
Linux ist ein Betriebssystem, welches
bereits seit 1969 existiert und Unix wurde von
Will man alle Vorkommen eines Wortes (Suchstrings) in einer Zeile
ersetzen, so muss man Sed durch Anhängen des Paramters g (global)
dies kundtun, also:
echo "Unix ist ein Betriebssystem,
welches bereits seit 1969 existiert." | sed "s/Unix/Linux/g"
|
|