Comment puis-je remplacer toutes les nouvelles lignes par un espace, à l'exception de la dernière nouvelle ligne? Je peux remplacer toutes les nouvelles lignes dans l'espace, tr
mais comment puis-je le faire à quelques exceptions près?
Comment puis-je remplacer toutes les nouvelles lignes par un espace, à l'exception de la dernière nouvelle ligne? Je peux remplacer toutes les nouvelles lignes dans l'espace, tr
mais comment puis-je le faire à quelques exceptions près?
Réponses:
Ré-implémenter l'idée de vonbrand en Perl, à condition que le fichier soit assez petit:
perl -p00e 's/\n(?!\Z)/ /g' your_file
Cela a fonctionné pour moi.
tr '\n' ' ' < file_with_new_line | sed 's/\ $//g' > file_with_space
tr
commande remplace toutes les nouvelles lignes par des espaces et votre sed
commande supprime le dernier espace. Cela aboutit à un fichier sans fin de ligne finale et n’est donc pas ce que la question demande. À propos, il n'y a aucun intérêt à utiliser int g
dans la sed
commande. Depuis que vous utilisez $
, il ne peut correspondre que à la fin, le g
est inutile. Vous n'avez pas non plus besoin d'échapper à l'espace, le `` ne fait pas de différence non plus.
-s
et-d
semblent être faites pour ce cas.