Есть такой текст:
...
[AC]
icon=battery-charging[AC][DPMSControl]
idleTime=3600[AC][HandleButtonEvents]
lidAction=64
powerButtonAction=8[Battery]
icon=battery-060[Battery][DPMSControl]
idleTime=300[Battery][HandleButtonEvents]
lidAction=64
powerButtonAction=16[LowBattery]
icon=battery-low[LowBattery][BrightnessControl]
value=30[LowBattery][HandleButtonEvents]
lidAction=64
powerButtonAction=16
...
Я хочу обработать диапазон строк между:
[AC][HandleButtonEvents]
...
[.*
В этом диапазоне надо изменить значение powerButtonActions.Я пытаюсь сделать так:
cat f.txt | sed /\[AC\]\[HandleButtonEvents\]/,/\[.*/s/powerButtonAction\s*=\s*.*/powerButtonAction=125/
Но получаю ошибку:> sed: -e выражение #1, символ 81: незавершенное адресное регулярное выражение
Вопрос: как правильно написать эту команду?
В общем, подошло такое решение:
sed -r '/\[AC\]\[HandleButtonEvents\]/,/^\[.*/s/(powerButtonAction=).+/\1125/'
-