sed '/\//!{H;d};G;/m=\(.*\)\n.*\1/d;P;d' file log
Объяснение: Сначала читается файл
с ключевыми словами фильтра, затем лог-файл. Строки, не содержащие /
, интерпретируются как ключевые слова и добавляются к пространству удержания (H
). К другим строкам добавляется место для удержания (G
) и удаляется, если ключевое слово после m=
повторяется в списке ключевых слов (/m=\(.*\)\n.*\1/d
). Если нет, то он печатается без добавленного пробела (P
).