小编osc*_*ter的帖子

为什么uniq会掉韩文字符串?

我有一个包含 220k 个名称的 CSV 文件,我想将这些名称批量导入到图形数据库中。批量导入器强加了每个节点只能出现一次的限制,所以我想使用sort和删除重复项uniq

sort all-authors.csv | uniq > unique-authors.csv
Run Code Online (Sandbox Code Playgroud)

在调查丢失的节点时,我观察到了这种奇怪的行为:

$ grep ??? unique-authors.csv
$ grep ??? all-authors.csv 
"???"
$
Run Code Online (Sandbox Code Playgroud)

该名称被传递sort但随后丢失uniq

$ sort all-authors.csv | grep ???
"???"
$ sort all-authors.csv | uniq | grep ???
$
Run Code Online (Sandbox Code Playgroud)

它适用于其他非英语名称,例如:

$ grep '?? ??' *csv
all-authors.csv:"?? ??"
unique-authors.csv:"?? ??"
$
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

编辑:添加了语言环境的输出

 $ 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
$
Run Code Online (Sandbox Code Playgroud)

编辑:使用单行文件和 sort -u …

sort locale csv uniq

5
推荐指数
1
解决办法
120
查看次数

标签 统计

csv ×1

locale ×1

sort ×1

uniq ×1