给定 2 个已排序的文件 - 删除在另一个文件中找到的所有单词

给定 2 个已排序的文件 - 删除在另一个文件中找到的所有单词

在 Linux 上,我有两个以俄语 UTF8 单词排序的文本文件sort -u(实际上我:%sort u在 Vim 中使用,它产生相同的结果)。

其中一个文件dict.txt包含我自定义词典中的大约 700000 个单词。另一个文件bad-words.txt包含经常输入错误的单词。

我想删除在中找到的所有bad-words.txt单词dict.txt

我知道使用哈希的 perl 脚本可以做到这一点,但我追求的是 Unix 单行代码。

请问是否有 Unix 命令(可能是使用diff? 的命令)来执行此任务?我希望您diff不会被大量的行所困扰 - 因为 Windows 上的“Beyond compare”程序是...

答案1

comm 将会这样做。

comm -3 dict badwords

或者即时排序:

comm -3 <(sort dict-input) <(badwords)

相关内容