[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: