Suponiendo que las palabras son una por línea y el archivo ya está ordenado:
uniq filename
Si el archivo no está ordenado:
sort filename | uniq
Si no son uno por línea y no te importa que sean uno por línea:
tr -s [:space:] \\n < filename | sort | uniq
Sin embargo, eso no elimina la puntuación, así que tal vez quieras:
tr -s [:space:][:punct:] \\n < filename | sort | uniq
Pero eso elimina el guión de las palabras con guión. "man tr" para más opciones.
ruby -pi.bak -e '$_.split(",").uniq.join(",")' filename
?
Admito que los dos tipos de citas son desagradables.