Com o GNU awk 1
gawk -vRS='#EOM\n' '{gsub(/\n[[:xdigit:]-]+/,"");} {$1=$1} 1' file.txt
- defina o separador de registro como
#EOMseguido por uma nova linha - remove sequências de dígitos hexadecimais e hífens precedidos por novas linhas; isto retém a sequência inicial de cada registro desde que sua nova linha foi comida pelo RS anterior
- reatribuir um campo
$1=$1para forçar o registro a ser reavaliado com separadores de saída padrão - imprime o registro (porque
1é verdadeiro)
Teste
$ gawk -vRS='#EOM\n' '{gsub(/\n[[:xdigit:]-]+/,"");} {$1=$1} 1' file.txt
b929e3e1-29db this is a long message that is continued onto multiple lines
ff513a72-570d this is a short message
980d10aa-bbed another short message
1 . ele não parece funcionar com mawk , por razões que eu não entendo (mesmo depois de substituir + por \{1,\} e vários outros ajustes)