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

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: