как заменить подстроку строки после совпадения нескольких ключевых слов/шаблонов

пример в журнале:

email@domain.tld R=smarthost T=remote_smtp_smarthost: message is too big (transport limit = 1)

это означает, что достигнут максимальный предел LINE в 998 символов

раствор:

в "/etc/exim4/exim4.conf.localmacros" добавьте следующую строку:

IGNORE_SMTP_LINE_LENGTH_LIMIT = 1

, а затем перезапустите exim4.

0
19.02.2021, 21:10
1 ответ

Да, вы, вероятно, можете использовать диапазоны адресов sed, но вы не можете сказать, когда заканчивается раздел # disabledRule:. Если он заканчивается, например, на следующей пустой строке, и в заданных строках нет других точек за пределами шаблона из filecopyстрок, это чрезвычайно просто:

sed '/^# disabledRule:$/,/^$/s_\._/_g'

Но в этом случае вы, вероятно, не стали бы спрашивать. Этот выполняет дополнительную фильтрацию по ключевым словам:

sed '/^# disabledRule:$/,/^$/{/"fileinto\(_copy\)*".*"create".*"target"/s_\._/_g;}'

Если это по-прежнему не соответствует вашим требованиям, измените его или объясните более подробно, в лучшем случае приведя более длинный пример файла.

0
20.08.2021, 15:12

Теги

Похожие вопросы