Comment puis-je remplacer tous les sauts de ligne par de l'espace sauf le dernier saut de ligne. Je peux remplacer tous les retours à la ligne en utilisant tr
mais comment puis-je le faire avec quelques exceptions?
Vous pouvez utiliser paste -s -d ' ' file.txt
:
$ cat file.txt
one line
another line
third line
fourth line
$ paste -s -d ' ' file.txt
one line another line third line fourth line
Vous pouvez utiliser tr
pour remplacer tous les retours à la ligne dans l'espace et transmettre la sortie à sed
et remplacer le dernier espace par un retour à la ligne:
tr '\n' ' ' < afile.txt | sed '$s/ $/\n/'
Réimplémentation idée de vonbrand en Perl, à condition que le fichier soit suffisamment petit:
Perl -p00e 's/\n(?!\Z)/ /g' your_file