Другой вариант - использовать расширение диапазона адресов GNU.
Следующий пример означает: удалить все из строки, которая начинается с pattern до строки, заканчивающейся точкой с запятой.
sed '/pattern/,/;$/ d' infile
РЕДАКТИРОВАТЬ к комментарию Harsh :
Попробуйте следующую sed
команду:
sed '/^\s*LOG\s*(.*;\s*$/ d ; /^\s*LOG/,/;\s*$/ d' infile
Пояснение:
/^\s*LOG\s*(.*;\s*$/ d # Delete line if begins with 'LOG' and ends with semicolon.
/^\s*LOG/,/;\s*$/ d # Delete range of lines between one that begins with LOG and
# other that ends with semicolon.