Я бы попробовал что-то вроде:
awk -v pattern="Testing:" '$0 ~ pattern { sub(pattern, " *"); print }'
Это должно сработать с любой версией sed
, поскольку он не содержит очевидных расширений. Нет необходимости явно обрабатывать символы новой строки, если вы позаботитесь о правильном заключении переменных в кавычки, чтобы предотвратить разделение слов.
Есть еще один вопрос, который ссылается на этот как заявленный дубликат, но на самом деле имеет совсем другой ответ.
Ответы на этот вопрос будут работать только в том случае, если Tomcat запускается от имени пользователя «root», что является плохой практикой безопасности. Если Tomcat запускается, в соответствии с рекомендациями, от имени пользователя tomcat :tomcat, файл catalina.out также будет принадлежать tomcat :tomcat. В этом случае logrotate не будет вращать catalina.out.
Чтобы исправить это, вы должны указать имя пользователя и группы в конфигурации logrotate. Так что в этом случае ваш файл /etc/logrotate.d/tomcat должен выглядеть следующим образом:
/usr/local/tomcat/logs/catalina.out {
su tomcat tomcat
copytruncate
daily
rotate 7
compress
missingok
size 5M
}