アメリカ辞書と英国辞書を1つの大きな辞書にマージしようとしていて、親セットから重複した辞書をすべて削除しようとしていますが、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を使用していることに注意してください。
答え1
LC_COLLATE
コマンドにのみ設定しcat
(使用しない)、sort
およびに設定する必要がありますuniq
。
また、LC_CTYPE
utf-8に設定する必要があるかもしれません。そうしないと、混乱を招く可能性があります。私が設定するLC_ALL
到着en_US.UTF-8
uniq -u
報告のみユニークいいですね。したがって、これらの1文字の単語が複数回出現したときに現れないのは正常です。
私のシステムでは重い剣2回表示されます。
$ cat american-english british-english | sort | grep -x 'épée'
épée
épée
おそらくあなたはsort | uniq
またはsort -u
。