Я хотел заменить «keepalive» на «keepalive 10 60», если он недопустимо настроен, или вставить «keepalive 10 60», если «keepalive» не найден.
Пока я придумал это, но он все еще вставляется в каждую пустую строку, в то время как "keepalive" находится и заменяется:
^keepalive(?!(\s[[:digit:]]{1,3}){2}).*\n|((?<!keepalive)^$(?!keepalive))
Сценарий 1:
keepalive 60
resolv-retry infinite
Ожидается:
keepalive 60 90
resolv-retry infinite
Результат:
keepalive 60 90
keepalive 60 90
resolv-retry infinite
Сценарий 2:
resolv-retry infinite
Ожидаемый результат:
keepalive 60 90
resolv-retry infinite
Результат:
keepalive 60 90
keepalive 60 90
resolv-retry infinite
Я очень неопытен в области регулярных выражений и буду очень признателен за любые советы и подсказки!