Re: Mit Sed 2 oder mehr zusammenhängende Zeilen ersetzen möglich ?
Christian Brabandt <dug@256bit.org> writes:
> Frank Küster schrieb am Samstag, den 01. Juni 2013:
>
>> Christian Brabandt <dug@256bit.org> writes:
>> > christian@R500 ~ % sed '/\[trigger\]/,/^$/s/\(enabled=\)true/\1false/g' /tmp/foobar > /tmp/foobar.out
>>
>> Kannst Du diese Syntax erklären? Was macht speziell das Komma? Und wo
>> in info sed finde ich was dazu
>
[... mir bekanntes gesnipt ...]
> Anstelle von Zeilennummern kann man aber auch patterns als Adressen
> angeben. Die patterns werden durch // definiert.
>
> /foobar/s ersetzt also in allen Zeilen, die /foobar/ matchen.
> /foobar/,$s ersetzt dann ab der ersten Zeile wo foobar matched bis zum
> Textende.
Mit anderen Worten: Das Komma trennt den Beginn vom Ende des address
ranges. Das war mir entgangen.
>> (Ich habe auch nichts zu meinem Strichpunkt gefunden...)?
>
> Damit trennt man Kommands ab. Also erst ersetzen, dann beenden:
> s/foobar/blahfasel/;q
Danke, das weiß ich natürlich, sonst hätte ich es nicht verwendet. Ich
weiß nur nicht wo das in "info sed" oder "man sed" steht...
Gruß, Frank
Reply to: