Com a ajuda da idéia básica correta tirada de um amigo, consegui encontrar uma solução para um filtro:
| sed 's/^SCHILY/+SCHILY/' | tr '2' '@' | tr '+' '2' | sort -t. -n -k1 -k2 -k3 | tr '@' '2'
Este primeiro sed
faz o bloco começar único, o primeiro tr
remove novas linhas, o segundo tr
faz o bloco iniciar linhas separadas, o comando sort
cria a ordem necessária e o comando% finaltr
restaura todas as novas linhas.
O comando sed
é um pouco complexo, pois precisa lidar com até três níveis de ordenação.