200 votes

Comment supprimer les retours à la ligne d'un fichier texte ?

J'ai les données suivantes, et je dois les mettre sur une seule ligne.

J'ai ça :

22791

;

14336

;

22821

;

34653

;

21491

;

25522

;

33238

;

J'ai besoin de ça :

22791;14336;22821;34653;21491;25522;33238;

EDITAR

Aucune de ces commandes ne fonctionne parfaitement.

La plupart d'entre eux laissent les données ressembler à ceci :

22791

;14336

;22821

;34653

;21491

;25522

357voto

Tyler McHenry Points 35551
tr --delete '\n' < yourfile.txt
tr -d '\n' < yourfile.txt

Editar:

Si aucune des commandes affichées ici ne fonctionne, c'est que vous avez quelque chose d'autre qu'une nouvelle ligne pour séparer vos champs. Il est possible que vous ayez des fins de ligne DOS/Windows dans le fichier (bien que je m'attende à ce que les solutions Perl fonctionnent même dans ce cas) ?

Essayez :

tr -d "\n\r" < yourfile.txt

Si cela ne fonctionne pas, vous devrez inspecter votre fichier de plus près (par exemple, avec un éditeur hexagonal) pour déterminer quels sont les caractères que vous souhaitez supprimer.

23voto

Vivin Paliath Points 40975
tr -d '\n' < file.txt

Ou

awk '{ printf "%s", $0 }' file.txt

Ou

sed ':a;N;$!ba;s/\n//g' file.txt

Cette page aquí a un tas d'autres méthodes pour supprimer les nouvelles lignes.

édité pour enlever l'abus félin :)

14voto

ZyX Points 26516
perl -p -i -e 's/\R//g;' filename

Doit faire le travail.

12voto

Nagev Points 658

Développant un réponse précédente ceci supprime toutes les nouvelles lignes et enregistre le résultat dans un nouveau fichier (merci à @tripleee) :

tr -d '\n' < yourfile.txt > yourfile2.txt

Ce qui est mieux qu'un "chat inutile" (voir commentaires) :

cat file.txt | tr -d '\n' > file2.txt

Également utile pour se débarrasser des nouvelles lignes à la fin du fichier, créées par exemple en utilisant la commande echo blah > file.txt .

Notez que le nom du fichier de destination est différent, important, sinon vous effacerez le contenu original !

11voto

Amardeep Points 10417
paste -sd "" file.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X