Uma maneira com sed
:
sed -e '/^---/ {
:1
$!N
s/\n/ /
/---$/!b1
}' <file
Essa abordagem faz o trabalho de maneira direta:
- Se a linha começar com
---
, insira o bloco de código - Dentro do bloco de código, criamos um rótulo de loop chamado
1
- Lemos a linha
N
ext da entrada se a linha atual não for a última linha$
- Substitua a linha de novo
\n
por um espaço - Se a próxima linha terminar com
---
, quebre!
do loop, caso contrário, reinicie o loopb1