Ma question est similaire à cette question mais avec quelques contraintes différentes:
- J'ai une grande liste de
\n
mots délimitée - un mot par ligne. La taille des fichiers varie de 2 Go à 10 Go. - J'ai besoin de supprimer toutes les lignes en double.
- Le processus peut trier la liste au cours de la suppression des doublons, mais n'est pas requis.
- Il y a suffisamment d'espace sur la partition pour contenir la nouvelle liste de mots unique.
J'ai essayé ces deux méthodes mais elles échouent toutes les deux avec des erreurs de mémoire insuffisante.
sort -u wordlist.lst > wordlist_unique.lst
awk '!seen[$0]++' wordlist.lst > wordlist_unique.lst
awk: (FILENAME=wordlist.lst FNR=43601815) fatal: assoc_lookup: bucket-ahname_str: can't allocate 10 bytes of memory (Cannot allocate memory)
Quelles autres approches puis-je essayer?