Você pode usar sed para ler até a primeira linha em branco e, em seguida, usar cat para ler o restante, o que seria mais eficiente para arquivos grandes:
{ sed -n '/./!q;p'; cat; } < the-file
Ele só funciona com arquivos regulares (não com pipes porque sed lê dados por blocos e não pode buscar de volta para a linha depois daquele em que q foi chamado se a entrada não for procurada). Conforme observado por @ peterph, com GNU sed versão 4.2.2 e acima, você pode adicionar o -u flag que faz com que o GNU sed leia sua entrada um byte de cada vez (e imprima uma linha por vez) e elimina o problema com pipes (embora degradando o desempenho).