Text-Processing

為什麼 uniq 忽略 Unicode 和帶有單個字母的行?

  • February 4, 2013

我正在嘗試將美國和英國詞典合併為一個大詞典,並且我正在嘗試從超集中刪除所有重複項,但似乎 uniq 沒有輸出諸如“épée”或單個字母之類的單詞。

這是我嘗試使用的:

LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort|uniq -u > unique_sorted_combined_dict

如果我這樣做:

LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort > sorted_combined_dict

“épée”和其他類似的詞確實會出現,以及單個字母。

有什麼我在這裡想念的uniq嗎?

我應該注意,我在 Ubuntu 12.10 上使用 GNU coreutils 中的 uniq,如果這有什麼不同的話。

您只LC_COLLATEcat命令設置(不使用它),而您需要為sortand設置它uniq

另外,您可能需要設置LC_CTYPE為 utf-8,否則會引起混淆。我會設置**LC_ALL**為en_US.UTF-8

uniq -u僅報告唯一行。所以,如果那些單字母單詞都出現了好幾次,沒有出現也很正常。

在我的系統上,重劍確實出現了兩次:

$ cat american-english british-english | sort | grep -x 'épée'
épée
épée

也許你的意思是sort | uniqsort -u

引用自:https://unix.stackexchange.com/questions/63697