グラフデータベースに一括インポートする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
$
編集:1行のファイルを追加し、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
これは私にとってうまくいきます。
いいえLC_COLLATE=C
sort test | uniq
이선동
そしてLC_COLLATE=C
LC_COLLATE=C sort test | LC_COLLATE=C uniq
동선이
동이선
선동이
선이동
이동선
이선동