Попробуйте:
$ printf '%s\n' "${FOO//$WORDTOREMOVE/}"
CATS DOGS FISH
Это также работает в ksh93
, mksh
, zsh
.
POSIXLY:
FOO="CATS DOGS FISH MICE"
WORDTOREMOVE="MICE"
remove_word() (
set -f
IFS=' '
s=$1
w=$2
set -- $1
for arg do
shift
[ "$arg" = "$w" ] && continue
set -- "$@" "$arg"
done
printf '%s\n' "$*"
)
remove_word "$FOO" "$WORDTOREMOVE"
Предполагается, что ваши слова разделены пробелами, и имеет побочный эффект, который удаляет пробелы до и после «$ WORDTOREMOVE»
.
Похоже, синтаксис rsyslog изменился в новых версиях. Запустив 8.24.0 на RHEL 7.4, следующий синтаксис в /etc/rsyslog.d/tomcat.conf
заставил меня работать:
if ($programname contains "server") then {
action(type="omfile" file="/var/log/tomcat/catalina.out" flushOnTXEnd="off")
stop
}
Затем, как указывает Джейми, потребовался перезапуск rsyslog:
service rsyslog restart