sed -e:n -e$\bo -e'N;s/\n/&/4;to' -ebn -e:o -e'y/\n/ /' <in >out
Isso concatenará 5 linhas - ou 1 + 4 linhas - substituindo cada nova linha por um único espaço. No entanto:
paste -d\ - - - - - <in >out
... também funcionaria.
Sua coisa g
sort poderia funcionar como:
paste -d\ - - <input |
sed 's/.*;\(.*\)/;&/' |
sort -t\; -k1,1 |
cut -d\; -f2- |
tr \ \n
... o que seria uma maneira bastante geral de fazê-lo, embora dependa de não haver espaços no arquivo de entrada. ele une todas as duas linhas em um espaço, copia o último campo ;
split para a cabeça de cada linha, classifica no primeiro campo, depois corta e divide as linhas de volta.