Re: Mit Sed 2 oder mehr zusammenhängende Zeilen ersetzen möglich ?
Am 06/01/2013 02:46 PM, schrieb Frank Küster:
>> 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 (Ich habe auch nichts zu meinem
> Strichpunkt gefunden...)?
/\[trigger\]/,/^$/
das ist eine Bereichsdefinition. Das nachfolgende Kommando wird also nur
auf alle Zeilen zwischen /\[trigger\]/ und der ersten darauf folgenden
Leerzeile (/^$/) angewendet.
s/\(enabled=\)true/\1false/g'
Bei allen Zeilen in dem oben definierten Bereich wird enabled=true auf
enabled=false gesetzt. \1 ist nur eine backreference auf die Klammer in
der ersten Regex.
cu René
Reply to: