sed + пометить строку в случае пройденного слова

мы хотим пометить “#” совпадающую строку с помощью sed или perl line liner

например

мы хотим отметить все строки в файле, которые include слово DatePattern

log4j.appender.DRFA.DatePattern=.yyyy-MM-dd 

ожидаемый результат

 #log4j.appender.DRFA.DatePattern 

примечание – если строка уже отмечена, она не добавит еще один знак «#» перед строкой

Перед # добавляется строка, а также удаляется символ = и все, что идет после него:

 sed 's/^\([^#].*DatePattern\)=.*/#\1/' file 

В качестве альтернативы, не удаляя = :

 sed 's/^[^#].*DatePattern/#&/' file 

Если вы не хотите удалять шаблон конечной даты (ваша спецификация не совсем понятна), попробуйте

 sed '/^[^#].*DatePattern/ s/^/#/' file