sup*_*tah 6 text-processing sort unicode locale uniq
我试图将美国和英国词典合并成一个大词典,并且我试图从超集中删除所有重复项,但似乎 uniq 没有输出诸如“épée”或单个字母之类的词。
这是我尝试使用的:
LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort|uniq -u > unique_sorted_combined_dict
Run Code Online (Sandbox Code Playgroud)
如果我只是这样做:
LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort > sorted_combined_dict
Run Code Online (Sandbox Code Playgroud)
“épée”和其他这样的词确实出现了,以及单个字母。
有什么我在这里想念的uniq吗?
我应该注意到我在 Ubuntu 12.10 上使用来自 GNU coreutils 的 uniq,如果这有什么不同的话。
LC_COLLATE您只为命令设置cat(不使用它),而您需要为sort和设置它uniq。
另外,你可能需要设置LC_CTYPE为utf-8,否则会引起混乱。我会设置LC_ALL为en_US.UTF-8
uniq -u只报告唯一的行。所以,如果这些单字母单词都出现了几次,不出现也是正常的。
在我的系统上,\xc3\xa9p\xc3\xa9e确实出现了两次:
\n\n$ cat american-english british-english | sort | grep -x '\xc3\xa9p\xc3\xa9e'\n\xc3\xa9p\xc3\xa9e\n\xc3\xa9p\xc3\xa9e\nRun Code Online (Sandbox Code Playgroud)\n\n也许你的意思sort | uniq是或sort -u。