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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (324)

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

word1, word2, word3, word2, word4, word5, word 3, word6, word7, word3

我想删除重复,并成为:

word1, word2, word3, word4, word5, word6, word7

我该怎么做?

提问于
用户回答回答于

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

uniq filename

如果文件没有排序:

sort filename | uniq

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

tr -s [:space:] \\n < filename | sort | uniq

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

tr -s [:space:][:punct:] \\n < filename | sort | uniq

但是,从连字符中删除连字符。

用户回答回答于

ruby -pi.bak -e '$_.split(",").uniq.join(",")' filename

扫码关注云+社区

领取腾讯云代金券