2 votes

le tri est très lent pour les gros fichiers

Je souhaite trier un fichier (en supprimant les doublons) qui contient une liste de mots d'une taille de près de 25 Go. J'utilise sort dans le terminal Ubuntu mais il faut des heures pour sortir un fichier trié, la commande est :

sort -u input.txt>output.txt

Existe-t-il un moyen alternatif et efficace de procéder de la même manière ?

4voto

Rinzwind Points 270388

D'après mon expérience personnelle, si vous voulez des lignes uniques, assurez-vous d'utiliser également

LC_ALL=C sort -u 

Je constate une amélioration de la vitesse d'un facteur 10, mais cela dépend probablement des caractères contenus dans le fichier (je dois souvent l'utiliser pour des traductions et j'ai donc des caractères accentués dans le fichier).

0voto

aborruso Points 504

Un outil vraiment incroyable est xsv ( https://github.com/BurntSushi/xsv ). L'exécuter pour un fichier de 3173959 lignes

xsv sort input.txt >output.csv

J'obtiens le résultat en 3 secondes

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