uniq가 한국어 문자열을 제거하는 이유는 무엇입니까?

uniq가 한국어 문자열을 제거하는 이유는 무엇입니까?

그래프 데이터베이스로 대량 가져오려는 220,000개의 이름이 포함된 CSV 파일이 있습니다. 대량 가져오기에서는 각 노드가 한 번만 나타날 수 있다는 제한을 적용하므로 다음과 같이 sort중복 항목을 제거 하고 싶습니다 uniq.

sort all-authors.csv | uniq > unique-authors.csv

누락된 노드를 조사하는 동안 다음과 같은 이상한 동작을 관찰했습니다.

$ grep 이선동 unique-authors.csv
$ grep 이선동 all-authors.csv 
"이선동"
$

이름이 전달되었으나 sort손실되었습니다 uniq.

$ sort all-authors.csv | grep 이선동
"이선동"
$ sort all-authors.csv | uniq | grep 이선동
$

다음과 같은 영어가 아닌 다른 이름과 함께 작동합니다.

$ grep '잔쎈 우베' *csv
all-authors.csv:"잔쎈 우베"
unique-authors.csv:"잔쎈 우베"
$

여기서 무슨 일이 일어나고 있는 걸까요?

편집: 로케일에 대한 출력 추가

 $ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
$

편집: 한 줄 파일을 추가하고 sort -u 시도 출력을 추가했습니다.

영향을 받은 문자열만 포함된 파일에 대한 pLumo의 의견에 답변하려면 다음을 수행하십시오.

$ grep 이선동 all-authors.csv > single-author.csv
$ sort single-author.csv | uniq
"이선동"
$

Rush의 의견에 대한 답변 sort -u:

$ sort -u all-authors.csv | grep 이선동

uniq에 대한 별칭을 설정하지 않았고 을 사용하여 확인했지만 alias | grep uniq아무것도 반환하지 않습니다.

답변1

다음 답변을 바탕으로 : https://stackoverflow.com/questions/5982531/behaviour-of-gnu-sort-command-with-non-letter-ascii-characters-such-as-dot-or

이것은 나에게 잘 작동합니다.

아니요LC_COLLATE=C

sort test | uniq
이선동

그리고LC_COLLATE=C

LC_COLLATE=C sort test | LC_COLLATE=C uniq
동선이
동이선
선동이
선이동
이동선
이선동

관련 정보