autre solution beaucoup plus tordue, je garantis pas que ça marche
sed -nr '/^ZZZ(.*)$/ { x;/.+/p } ; /^ZZZ(.*)$/ !{ H;x;s/^(.*)\n(.*)$/\1\2/;x } ; $ { x;p }' <ton fichier>
(ça permet de parcourir le fichier, de concaténer chaque ligne à la précédente quand elle ne commence pas par ZZZ, et d'afficher le résultat de cette concaténation quand on tombe sur une "vraie" nouvelle ligne qui commence par ZZZ)