214 votes

Comment diviser des fichiers volumineux en parties plus petites ?

J'ai un gros fichier (8GB par exemple). Comment puis-je le diviser en plusieurs parties, disons 3 parties égales, et après cela, comment puis-je les intégrer plus tard ?

0voto

split --number

C'est une bonne option pour générer N fichiers de même taille, à l'exception du dernier qui pourrait être plus grand en raison de l'indivisibilité. Par exemple :

printf '0123456789' > f.txt
split -d --number 2 f.txt f.txt.part.
tail f.txt.part.*

donne :

==> f.txt.part.00 <==
01234
==> f.txt.part.01 <==
56789

et :

split -d --number 3 f.txt f.txt.part.
tail f.txt.part.*

donne :

==> f.txt.part.00 <==
012
==> f.txt.part.01 <==
345
==> f.txt.part.02 <==
6789

Par rapport à -b + calcul explicite de la taille, qui a été mentionné à l'adresse suivante : https://askubuntu.com/a/54584/52975 le dernier fichier peut être presque 2x plus grand que les précédents, ce qui est parfois un inconvénient de cette option. Elle est cependant souvent plus pratique, car vous n'avez pas à faire le calcul de la taille vous-même.

Un nombre égal de lignes a été demandé : https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines

Testé dans split 2.28, Ubuntu 18.04.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X