如何使用linux命令从纯文本文件中删除重复的单词

cup*_*kob 21 linux file plaintext duplicates

我有一个带有单词的纯文本文件,用逗号分隔,例如:

word1, word2, word3, word2, word4, word5, word 3, word6, word7, word3
Run Code Online (Sandbox Code Playgroud)

我想删除重复项并成为:

word1, word2, word3, word4, word5, word6, word7
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我想,egrep可以帮助我,但我不确定,如何正确使用它....

Ran*_*son 32

假设单词是每行一个,并且文件已经排序:

uniq filename
Run Code Online (Sandbox Code Playgroud)

如果文件未排序:

sort filename | uniq
Run Code Online (Sandbox Code Playgroud)

如果他们不是每行一个,你不介意他们每行一个:

tr -s [:space:] \\n < filename | sort | uniq
Run Code Online (Sandbox Code Playgroud)

但这并不能删除标点符号,所以也许你想要:

tr -s [:space:][:punct:] \\n < filename | sort | uniq
Run Code Online (Sandbox Code Playgroud)

但是这会删除带连字符的连字符."man tr"有更多选择.