所以我有两本词典要比较(美国英语和英国英语)。
如何使用uniq命令计算(-c)美式英语或英式英语中有多少单词,但不是两者都有?
另外,如何计算出现在不同字典中的一个字典的单词出现次数?
试着了解uniq如何在更复杂的层面上运作。任何帮助表示赞赏!
答案 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