Se a linha atual não for "Mensagem", anexe a linha à lista, associada a OFS; quando vir "Mensagem", imprima a lista atual (unida por OFS com a atual linha "Mensagem"):
awk '/^Message$/ { print t OFS $0 ORS; t=""; } !/^Message$/ { t=(t ? t OFS $0 : $0) }' < foo.txt
A parte t=(t ? t OFS $0 : $0)
é um operador ternário; ele verifica se t
está vazio; se for, basta atribuir a linha atual a ela; caso contrário, acrescente o valor atual ao OFS seguido da linha atual.
Saída:
some text [email protected] 8903457923 2018-02-09 07:12 (Asia/Kolkata) again some text over here some more text again Message
some text [email protected] 8903457923 2018-02-05 07:12 (Asia/Kolkata) again some text over here some more text again Message