J'ai un fichier de 400 mégaoctets. Le fichier est une liste de mots, chaque mot sur une seule ligne. Les fins de lignes sont un mélange de cr / lf et de lf. Certains mots sont unicode.
Je préférerais des réponses pour Linux ou Windows s'il vous plaît. Je suis heureux d'installer un logiciel, mais je préférerais open source.
Je dois supprimer tous les mots de moins de 8 caractères. J'ai ensuite besoin de dédoubler la liste. (Trier la liste est agréable, mais pas nécessaire sauf si cela fait partie du processus.) Je me fiche des mots unicode - ils peuvent rester ou disparaître. Les dépouiller, c'est bien.
Pour supprimer tous les mots de 7 caractères ou moins, j'utilise awk:
awk "length($0) > 7" wordlist.txt > mynewwordlist.txt
(Ceci est Windows, désolé pour le "au lieu de ')
J'essaie ensuite d'utiliser le tri, car je peux alors utiliser à nouveau awk pour réduire les lignes. Sort n'a pas aimé la liste de mots. Je pense (mais je ne suis pas sûr) que l'unicode l'a cassé.
Alors, comment puis-je dupliquer la liste de mots? Ou comment puis-je trier la liste de mots afin que je puisse utiliser awk pour réduire le problème?
-u
(--unique
), au moins sur cygwin.Au cas où quelqu'un aurait besoin de le faire sans avoir accès à
awk
, vous pouvez aussi utilisergrep
pour sélectionner des mots d'au moins une longueur donnée:la source