미국 사전과 영국 사전을 하나의 큰 사전으로 병합하려고 하고 상위 집합에서 중복된 사전을 모두 제거하려고 하는데 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
보고만고유한좋아요. 따라서 이러한 한 글자 단어가 여러 번 나타나면 나타나지 않는 것이 정상입니다.
내 시스템에서는무거운 검두 번 나타납니다.
$ cat american-english british-english | sort | grep -x 'épée'
épée
épée
아마도 당신은 sort | uniq
또는 sort -u
.