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 ?
Réponse
Trop de publicités?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.
- Réponses précédentes
- Plus de réponses