222 votes

Comment ajouter le contenu de plusieurs fichiers dans un seul fichier ?

Je veux copier le contenu de cinq fichiers dans un seul fichier tel quel. J'ai essayé de le faire en utilisant cp pour chaque fichier. Mais cela écrase le contenu copié du fichier précédent. J'ai également essayé

paste -d "\n" 1.txt 0.txt

et ça n'a pas marché.

Je veux que mon script ajoute la nouvelle ligne à la fin de chaque fichier texte.

Par exemple. Fichiers 1.txt, 2.txt, 3.txt. Mettez le contenu de 1,2,3 dans 0.txt.

Comment dois-je m'y prendre ?

385voto

radical7 Points 7182

Vous avez besoin de la cat (abréviation de concaténation), avec une redirection de l'interpréteur de commandes ( > ) dans votre fichier de sortie

cat 1.txt 2.txt 3.txt > 0.txt

118voto

mopo922 Points 4930

Une autre option, pour ceux d'entre vous qui tombent encore sur ce post comme moi, est d'utiliser find -exec :

find . -type f -name '*.txt' -exec cat {} + >> output.file

Dans mon cas, j'avais besoin d'une option plus robuste, capable de parcourir plusieurs sous-répertoires. find . La décomposition :

find .

Rechercher dans le répertoire de travail actuel.

-type f

Seulement intéressé par les fichiers, pas les répertoires, etc.

-name '*.txt'

Réduire l'ensemble des résultats par nom

-exec cat {} +

Exécutez la commande cat pour chaque résultat. "+" signifie qu'il n'y a qu'une seule instance de cat est créé (merci @gniourf_gniourf)

 >> output.file

Comme expliqué dans d'autres réponses, ajoutez le contenu du chat à la fin d'un fichier de sortie.

51voto

Eswar Yaganti Points 1

Si vous avez un certain type de sortie, faites quelque chose comme ceci

cat /path/to/files/*.txt >> finalout.txt

21voto

AeaRy Points 191

Si tous vos fichiers sont nommés de manière similaire, vous pouvez simplement le faire :

cat *.log >> output.log

19voto

Pooja Points 944

Si tous vos fichiers sont dans un seul répertoire, vous pouvez simplement faire

cat * > 0.txt

Les fichiers 1.txt, 2.txt, seront placés dans 0.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