Mantenha a simplicidade:
sed 'H;1h;$!d;g;s/\n */ /g'
Este script curto unirá todas as linhas que começam com pelo menos um espaço com a linha anterior.
Como funciona: H
acrescenta cada linha ao espaço de espera. Para evitar uma nova linha principal, a primeira linha é copiada por 1h
. Se essa não foi a última linha, d
elete, caso contrário, mova o espaço de suspensão para o espaço de padrão com g
. Agora, o arquivo inteiro está no espaço padrão e agora o comando s
substitui todas as novas linhas por espaços em um espaço.
Com o GNU sed
, você pode simplificar ainda mais:
sed -z 's/\n */ /g'