Text-Processing
為什麼 uniq 忽略 Unicode 和帶有單個字母的行?
我正在嘗試將美國和英國詞典合併為一個大詞典,並且我正在嘗試從超集中刪除所有重複項,但似乎 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_COLLATE
為cat
命令設置(不使用它),而您需要為sort
and設置它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 | uniq
或sort -u
。