Vous ne pouvez pas remplacer les nouvelles lignes sur une base ligne par ligne avec sed
. Vous devez accumuler des lignes et remplacer les nouvelles lignes entre eux.
text abc\n <- can't replace this one
text abc\ntext def\n <- you can replace the one after "abc" but not the one at the end
Ce script sed
accumule toutes les lignes et supprime tous les sauts de ligne, mais la dernière:
sed -n '1{x;d};${H;x;s/\n/\t/g;p};{H}'
Par ailleurs, votre sed
scénario sed -e "s_/\n_/\t_g"
essaie de dire « remplacer toutes les barres obliques suivies de nouvelles lignes avec barres obliques suivies d'onglets ". Les traits de soulignement jouent le rôle de délimiteurs pour la commande s
afin que les barres obliques puissent être plus facilement utilisées comme caractères pour la recherche et le remplacement.
+1 Me battre de 40 secondes – Nifle
@Nifle: Aussi pas de 'cat' ici, mais qui compte? :) – Telemachus
Pourrait faire remarquer que 'newlines' est le fichier texte – Nifle