ソートする最良の方法は何ですか?

ソートする最良の方法は何ですか?

私は多くのテキスト操作を実行し、私がよく使用する操作の1つはソートです。通常、重複したアイテムも削除します。

だから私は通常コマンドラインsortsort -uスクリプト、マクロなどでコマンドを使います。 - 動作しない場合無料オフィス 作家または計算する、もちろんです。

これで、多くの重複したエントリと一緒に、多くの記号、絵文字、図形、線、非標準のASCII文字、数字などを含むプレーンテキストファイルが作成されました。

1行に1文字ずつテキストに変換するのは簡単です。

しかし、重複した項目をソートして削除することは、思ったほど簡単ではありません。

残念ながら、このコマンドを使用すると、sort -u file.txt > file-sorted.txt2078行が359行に減少し、それによって約1000の一意の文字が削除されたようです。多くの文字が誤ってフィルタリングされていることがわかります。

だから私の結論sort -u command標準の英数字としてのみ機能します。

どんな考えや提案がありますか?

添付:処理するファイルのサンプルテキストの40文字は次のとおりです。

ღ ❂ ◕ ⊕ Θ o O ♋ ☯ ⊙ ◎ ๑ ☜ ☞ ♨ ☎ ☏ ۩ ۞ ♬ ✖ ɔ ½ ' ‿ ' * ᴗ * ◕ ‿ ◕ ❊ ᴗ ❊ . ᴗ . ᵒ ᴗ 

これにはいくつかの重複項目しかありませんが、sortコマンドがテキストを処理するのに少し問題がありますが、何も失われず、両方ともまったく同じ出力をsort -u持つため、uniq11個に減り、多くの文字が削除されます。

答え1

Pythonなどの適切なUnicodeをサポートするものを試してください。

$ python3 -c 'import sys; print("\n".join(sorted(set(c for l in sys.stdin.readlines() for c in l.split()))))' < bar
'
*
.
O
o
½
ɔ
Θ
۞
۩
$ python3 -c 'import sys; print(len(set(c for l in sys.stdin.readlines() for c in l.split())))' < bar
30

関連情報