Попробуйте:
sed 'h;s/[^=]*=*=#\(.*\)/\1/;s/\([^=]\)#/\1/g;x;s/\([^=]*=\+#\).*/\1/;G;s/\n//g' inputfile
Он разбивает строку на две сначала "= #", затем удаляет все "#", которым не предшествует "=", затем объединяет строки
Дайте мне знать, если есть конкретные случаи, когда он терпит неудачу.
Edit:
Эта версия, которая становится все более хрупкой, работает как для вашего нового примера, так и для оригинала:
sed 'h;s/[^=]*=[^=]*=*=#\(.*\)$/\1/;s/\([^=]\)#/\1/g;x;s/\([^=]*=[^=]*=\+#\).*/\1/;G;s/\n//g' inputfile