Bonsoir
Votre commande ne peut pas faire ce à quoi vous vous attendiez pourtant. La simple raison est que le caractère \n ne fait pas partie de la chaîne examinée par sed. Une solution serait, avec une boucle while, d'inclure toutes les lignes dans le "pattern buffer" (désolé de l'anglicisme), puis de supprimer ce fameux caractère \n. C'est envisageable pour un petit fichier... car tout el fichier doit tenir en mémoire. C'est donc pas une solution universelle.
Une solution qui marche, mais on peut certainement faire mieux :
awk 'BEGIN {ORS=" "} {print} END {print "\n"}' <fichier>
Explications :
Dans la section BEGIN, on définit le séparateur d'enregistrement en sortie (la variable ORS) à <espace>.
Dans la section principale, pour chaque ligne du fichier en entrée, il n'y a qu'une action : imprime
Dans la section END, pour faire propre, on imprime un retour à la ligne.
(-: un simple "man awk" vous aurait mis sur la piste de cette solution
En espérant que cela serve
Ciao