Re: sed-Frage
Hallo Andre!
Andre Tann schrieb am Mittwoch, den 15. Mai 2013:
> Hallo zusammen,
>
> möchte ich in einer Datei nur das erste Vorkommen eines Musters
> ersetzen, dann funktioniert das so:
>
> sed -ie '0,/alt/s//neu/' datei
>
> Könnte mir bitte jemand auseinandersetzen, wieso das so ist?
>
> - Warum trifft die Adressierung 0, die erste Zeile des Vorkommens, und
> alle anderen nicht?
Das s-command akzeptiert 2 Adressen, Begin und Ende-Adresse. In diesem
Fall also 0 und /alt/
Das bedeutet, sed ersetzt alt durch neu innerhalb des ersten Blocks, der
durch die Zeilen 1 und /alt/ definiert wird.
> - Warum läßt man das zu ersetzende Muster aus, bzw. zieht es vor s?
Das tut man nicht, sondern man sagt sed, dass es nur im ersten passenden
Bereich ersetzen soll. Eigentlich müsste man im s Befehl auch nach einer
Zeichenkette suchen, die man ersetzen möchte. Wenn man diese
Zeichenkette leer läßt, wird automatisch das letzte benutzte Pattern
benutzt, in diesem Fall halt das Muster der Adressierung /alt/
Grüße
Christian
--
Reply to:
- References:
- sed-Frage
- From: Andre Tann <atann@alphasrv.net>