awk lê a entrada como "parágrafos", ou registros separados por linhas vazias se RS
estiver definido para a cadeia vazia ( GNU awk ). (configurar RS
para \n\n+
é semelhante, mas não exatamente.) Você pode imprimir todos os registros que não contêm uma nova linha:
$ awk -vRS= '$0 !~ /\n/' file1
B
C
Isso também imprimia a primeira e a última linha, se forem seguidas ou precedidas por uma linha vazia, tratando o início e o fim do arquivo como "linhas vazias". Se você quiser linhas vazias reais, algo assim faria:
awk 'BEGIN {lines=2} /^$/ {if (lines == 1) print prev; lines=0 }
!/^$/ {lines += 1} {prev=$0}' file1