Um caminho:
cat -s file | sed 's/^$/---/'
Da página man do cat:
-s, --squeeze-blank
never more than one single blank line
Quando cat
tiver espremido as linhas em branco, sed
substituirá o espaço em branco por ---