使用 uniq 比较 2 个字典

Using uniq to compare 2 dictionaries

所以我有两个词典要比较(美式英语 vs 英式英语)。

如何使用 uniq 命令来计算 (-c) 美式英语或英式英语中有多少单词?

另外,如何统计一个词典中的单词出现在另一本词典中的次数?

只是想了解 uniq 如何在更复杂的层面上工作。感谢您的帮助!

而不是 uniq,为此使用 comm 命令。它会找到两个文件之间共有的行,或者一个文件或另一个文件所独有的行。

这计算了一个字典中的所有单词,而不是两个字典中的所有单词

comm -3 american british | wc -l

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

comm -12 american british | wc -l

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

它要求对文件进行排序,我假设您的字典文件就是这样。

你也可以用unique来做。它有选项 -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