Ou uma variante de perl:
perl -e 'undef $/; $_=<>; s/^\n{2,}//mg; print' < infile
unset ( undef ) o separador de campo ( $/ ). Isso faz com que $_=<> atribua o conteúdo de STDIN em $_ . Em seguida, pesquise e substitua 2 ou mais novas linhas com nada ( s/^\n{2,}//mg; ) e print da saída (essas operações são feitas em $_ ). A opção m na pesquisa s/// acima permite correspondência de nova linha (linha múltipla) e g aplica o padrão para todas as ocorrências na sequência (e não apenas na primeira).
Se for para trabalhar apenas em 2 e 3 novas linhas (e não efetuar 4 ou 5 etc), use s/^\n{2,3}//mg;
Para arquivo de formato DOS:
perl -e 'undef $/; $_=<>; s/^(\r\n){2,}//mg; print' < infile