Aqui está um começo que, pelo menos, funciona com os dados do exemplo:
sed -r '/[A-Z];/{N;s/([^;]+);\n([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)/: : : :/;3,$s/^/\n/};s/^/ /' input.txt
Isto está assumindo o seguinte:
- A linha 1 de cada registro sempre terá algumas letras maiúsculas
- A linha 2 de cada registro sempre segue diretamente a linha 1
- A linha 2 de cada registro sempre tem exatamente 4 campos (isso pode ser generalizado, mas precisa ser exatamente 4 por enquanto)
- As linhas restantes de cada registro são sempre puramente numéricas, ou seja, sem letras
- Todos os campos são separados por
space
semicolon
. - os registros na saída devem ser separados por uma linha em branco, mas sem linhas extras em branco no início ou no final da saída.