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