Mi pregunta es similar a esta pregunta pero con un par de restricciones diferentes:
- Tengo una gran
\n
lista de palabras delimitadas: una palabra por línea. El tamaño de los archivos varía de 2 GB a 10 GB. - Necesito eliminar cualquier línea duplicada.
- El proceso puede ordenar la lista durante el transcurso de la eliminación de los duplicados, pero no es obligatorio.
- Hay suficiente espacio en la partición para contener la nueva lista de palabras única que se genera.
He intentado ambos métodos, pero ambos fallan con errores de falta de memoria.
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)
¿Qué otros enfoques puedo probar?
Eche un vistazo a una solución usando awk unix.stackexchange.com/a/30178/56820
—
ezdazuzena