Réponse rapide
sed ':a;N;$!ba;s/\n/ /g' file
- : a  créer une étiquette 'a'
 
- N  ajoute la ligne suivante à l'espace de motif
 
- $!  si ce n'est pas la dernière ligne , ba  branche (allez à) étiquette 'a'
 
- s  remplacer , / \ n /  regex pour la nouvelle ligne , / /  par un espace , / g  correspondance globale (autant de fois que possible)
 
sed effectuera une boucle à travers les étapes 1 à 3 jusqu'à ce qu'il atteigne la dernière ligne, pour que toutes les lignes tiennent dans l'espace du modèle où sed remplacera tous les \ n caractères
Alternatives
Toutes les alternatives, contrairement à sed, n'auront pas besoin d'atteindre la dernière ligne pour commencer le processus
avec bash , lent
while read line; do printf "%s" "$line "; done < file
avec perl , vitesse semblable à sed
perl -p -e 's/\n/ /' file
avec tr , plus rapide que sed , peut remplacer par un seul caractère
tr '\n' ' ' < file
avec pâte , vitesse tr- like, peut remplacer par un seul caractère
paste -s -d ' ' file
avec vitesse awk , tr- like
awk 1 ORS=' ' file
Une autre alternative comme "echo $ (<fichier)" est lente, ne fonctionne que sur les petits fichiers et doit traiter le fichier entier pour commencer le processus.
5.10. Pourquoi ne puis-je pas faire correspondre ou supprimer une nouvelle ligne en utilisant la 
      séquence d' échappement \ n ? Pourquoi ne puis-je pas faire correspondre 2 lignes ou plus en utilisant \ n?                   
Le \ n ne correspondra jamais à la nouvelle ligne à la fin de la ligne car le
 
   nouvelle ligne est toujours supprimée avant que la ligne ne soit placée dans l' 
   espace de motif. Pour obtenir 2 lignes ou plus dans l'espace de motif, utilisez 
   la commande 'N' ou quelque chose de similaire (comme 'H; ...; g;').                 
Sed fonctionne comme ceci: sed lit une ligne à la fois, coupe la 
   nouvelle ligne de fin, place ce qui reste dans l'espace de modèle où 
   le script sed peut l'adresser ou le modifier, et lorsque l'espace de modèle 
   est imprimé, ajoute une nouvelle ligne à stdout (ou vers un fichier). Si l' 
   espace de motif est entièrement ou partiellement supprimé avec 'd' ou 'D', la 
   nouvelle ligne n'est pas ajoutée dans de tels cas. Ainsi, des scripts comme                   
  sed 's/\n//' file       # to delete newlines from each line             
  sed 's/\n/foo\n/' file  # to add a word to the end of each line         
ne fonctionnera JAMAIS, car la nouvelle ligne de fin est supprimée avant que
 
   la ligne ne soit placée dans l'espace de motif. Pour effectuer les tâches ci-dessus, 
   utilisez plutôt l'un de ces scripts:                                          
  tr -d '\n' < file              # use tr to delete newlines              
  sed ':a;N;$!ba;s/\n//g' file   # GNU sed to delete newlines             
  sed 's/$/ foo/' file           # add "foo" to end of each line          
Étant donné que les versions de sed autres que GNU sed ont des limites à la taille du 
   tampon de modèle, l'utilitaire «tr» d'Unix est préférable ici. 
   Si la dernière ligne du fichier contient une nouvelle ligne, GNU sed ajoutera 
   cette nouvelle ligne à la sortie mais supprimera toutes les autres, tandis que tr 
   supprimera toutes les nouvelles lignes.                                                       
Pour faire correspondre un bloc de deux lignes ou plus, il y a 3 choix de base: 
   (1) utilisez la commande «N» pour ajouter la ligne suivante à l'espace de motif; 
   (2) utilisez la commande «H» au moins deux fois pour ajouter la ligne actuelle 
   à l'espace d'attente, puis récupérez les lignes de l'espace d'attente
 
   avec x, g ou G; ou (3) utiliser des plages d'adresses (voir section 3.3, ci-dessus) 
   pour faire correspondre les lignes entre deux adresses spécifiées.                            
Les choix (1) et (2) mettront un \ n dans l'espace modèle, où il 
   pourra être adressé comme souhaité ('s / ABC \ nXYZ / alphabet / g'). Un exemple 
   d'utilisation de «N» pour supprimer un bloc de lignes apparaît dans la section 4.13 
   («Comment supprimer un bloc de lignes consécutives spécifiques ?»). Cet 
   exemple peut être modifié en remplaçant la commande delete par 
   autre chose , comme 'p' (impression), 'i' (insertion), 'c' (changement), 'a' (ajout),
 
   ou 's' (remplacement) .                                                       
Choice (3) ne sera pas mettre \ n dans l'espace de travail , mais il ne
 
   correspond un bloc de lignes consécutives, donc il se peut que vous n'avez pas 
   même besoin \ n pour trouver ce que vous cherchez. Depuis GNU sed 
   version 3.02.80 prend désormais en charge cette syntaxe:                                  
  sed '/start/,+4d'  # to delete "start" plus the next 4 lines,           
en plus des 
   adresses traditionnelles "/ d'ici /, / là-bas / {...}" , il peut être possible d'éviter complètement l'utilisation de \ n.
               
              
trn'est le bon outil pour le travail que si remplacer un seul caractère par un seul caractère, tandis que l'exemple ci-dessus montre remplacer la nouvelle ligne par un espace. Donc dans l'exemple ci-dessus, tr pourrait fonctionner .. Mais serait limitant plus tard.