SED для тысячи из 301 переадресации на htaccess?

Вместо того, чтобы вручную очищать ненужные записи журнала после их появления, почему бы вам просто не настроить ведение журнала в AuditBeat?

По умолчанию info, попробуйте установить уровень журнала на error:

.

logging.level: error

Существует несколько других вариантов, таких как запись в другое место, как указано здесь .

Я бы лично попытался исчерпать их все, чтобы найти решение, а не писать собственные скрипты для удаления вещей, которых не должно быть с самого начала.

Наконец, хотя я не возражаю против того, чтобы этот вопрос был здесь, в U&L, у стека Elastic довольно активное сообщество :https://discuss.elastic.co/

Может быть, ваш вопрос лучше подходит туда?

-1
15.11.2020, 09:19
2 ответа

является ли 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); однако я бы посоветовал вам сохранить исходный файл и применить редакцию к новому файлу и переименовать его, если вы удовлетворены результатом.

1
18.03.2021, 22:49

Использованиеsed:

< input_file sed -E 's#((/[^/]*){2})$#\1 \1#' > output_file
  • /[^/]*соответствует косой черте, за которой следует ноль или более символов без косой черты.
  • (){2}означает дважды заключенное в скобки выражение.
  • $соответствует концу строки.
  • Внешний ()позволяет повторно использовать то, что внутри, как \1в заменяемой детали.
  • Также для удобства в качестве разделителя в этой замене используется символ, отличный от косой черты, например #. А -Eвключает ERE.
1
18.03.2021, 22:49

Теги

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