使用uniq比较2个词典

时间:2016-02-12 05:08:45

标签: linux bash dictionary terminal uniq

所以我有两本词典要比较(美国英语和英国英语)。

如何使用uniq命令计算(-c)美式英语或英式英语中有多少单词,但不是两者都有?

另外,如何计算出现在不同字典中的一个字典的单词出现次数?

试着了解uniq如何在更复杂的层面上运作。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:3)

而不是uniq,请使用comm命令。它找到两个文件之间共有的行,或者对于其中一个文件是唯一的。

这会计算一个词典中的所有单词,但不能同时计算

comm -3 american british | wc -l

这会计算两个词典中的单词:

comm -12 american british | wc -l

默认情况下,comm显示仅在第1列的第一个文件中的行,仅在第2列的第二个文件中的行,以及第3列中的两个文件中的行。您可以然后使用-[123]选项告诉它省略指定的列。因此-3仅显示第1列和第2列(每个文件中的唯一字词),而-12仅显示第3列(常用字词)。

它要求对文件进行排序,我假设你的字典文件是。

您也可以使用独特的方式。它有选项-u,只显示一次出现的行,而-d只显示重复的行。

sort american british | uniq -u | wc -l # words in just one language
sort american british | uniq -d | wc -l # words in both languages