Вместо того, чтобы вручную очищать ненужные записи журнала после их появления, почему бы вам просто не настроить ведение журнала в AuditBeat?
По умолчанию info
, попробуйте установить уровень журнала на error
:
.
logging.level: error
Существует несколько других вариантов, таких как запись в другое место, как указано здесь .
Я бы лично попытался исчерпать их все, чтобы найти решение, а не писать собственные скрипты для удаления вещей, которых не должно быть с самого начала.
Наконец, хотя я не возражаю против того, чтобы этот вопрос был здесь, в U&L, у стека Elastic довольно активное сообщество :https://discuss.elastic.co/
Может быть, ваш вопрос лучше подходит туда?
является ли sed
обязательным?
awk -F/ '{printf "%s /%s/\n",$0,$(NF-1)}' old_file > new_file
применять только к строке с перенаправлением и перезаписью полного файла.
awk -F/ '$1 ~ /Redirect/ {printf "%s /%s/\n",$0,$(NF-1); next ; } {print}' old_file > new_file
где
-F/
указать awk использовать /
в качестве разделителя полей $0
, $(NF-1)
— целая строка перед последним полем $1 ~ /Redirect/
выбрать строку с перенаправлением next
перейти на следующую строку {print}
неявный вывод строки, не соответствующейRedirect
Редактировать :, если исходная строка заканчивается концом /
, нам нужно выбрать перед -последнее поле -.
обратите внимание, что некоторые awk
могут редактировать на месте(awk -i
); однако я бы посоветовал вам сохранить исходный файл и применить редакцию к новому файлу и переименовать его, если вы удовлетворены результатом.
Использованиеsed
:
< input_file sed -E 's#((/[^/]*){2})$#\1 \1#' > output_file
/[^/]*
соответствует косой черте, за которой следует ноль или более символов без косой черты. (){2}
означает дважды заключенное в скобки выражение. $
соответствует концу строки. ()
позволяет повторно использовать то, что внутри, как \1
в заменяемой детали. #
. А -E
включает ERE.