352 votes

script shell bash combinant * .txt en un seul fichier

Quelle est la manière la plus rapide et la plus pragmatique de combiner tous les fichiers * .txt dans un répertoire en un seul fichier texte volumineux?

Actuellement, j'utilise Windows avec cygwin et j'ai donc accès à BASH.

La commande shell Windows serait bien aussi mais je doute qu'il y en ait une.

635voto

Robert Greiner Points 16237

Cela ajoute la sortie à all.txt

 cat *.txt >> all.txt
 

Cela écrase tout.txt

 cat *.txt > all.txt
 

174voto

Chinmay Kanchi Points 16353

Rappelez-vous, pour toutes les solutions données jusqu'ici, le shell décide de l'ordre dans lequel les fichiers sont concaténés. Pour Bash, IIRC, c'est l'ordre alphabétique. Si l'ordre est important, vous devez soit nommer les fichiers de manière appropriée (01file.txt, 02file.txt, etc ...), soit spécifier chaque fichier dans l'ordre que vous souhaitez concaténer.

 $ cat file1 file2 file3 file4 file5 file6 > out.txt
 

34voto

Greg Hewgill Points 356191

La commande shell Windows type peut le faire:

 type *.txt >outputfile
 

Tapez la commande type écrit également les noms de fichiers dans stderr, qui ne sont pas capturés par l'opérateur de redirection > (mais s'afficheront sur la console).

30voto

Carl Norum Points 114072

Vous pouvez utiliser Windows shell copy pour concaténer des fichiers.

 C:\> copy *.txt outputfile
 

De l'aide:

Pour ajouter des fichiers, spécifiez un seul fichier pour la destination, mais plusieurs fichiers pour la source (en utilisant des caractères génériques ou un format fichier1 + fichier2 + fichier3).

6voto

ghostdog74 Points 86060

la commande la plus pragmatique avec le shell est la commande cat. d'autres moyens incluent,

 awk '1' *.txt > all.txt
perl -ne 'print;' *.txt > all.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