私は多くのテキスト操作を実行し、私がよく使用する操作の1つはソートです。通常、重複したアイテムも削除します。
だから私は通常コマンドラインsort
やsort -u
スクリプト、マクロなどでコマンドを使います。 - 動作しない場合無料オフィス 作家または計算する、もちろんです。
これで、多くの重複したエントリと一緒に、多くの記号、絵文字、図形、線、非標準のASCII文字、数字などを含むプレーンテキストファイルが作成されました。
1行に1文字ずつテキストに変換するのは簡単です。
しかし、重複した項目をソートして削除することは、思ったほど簡単ではありません。
残念ながら、このコマンドを使用すると、sort -u file.txt > file-sorted.txt
2078行が359行に減少し、それによって約1000の一意の文字が削除されたようです。多くの文字が誤ってフィルタリングされていることがわかります。
だから私の結論sort -u command
は標準の英数字としてのみ機能します。。
どんな考えや提案がありますか?
添付:処理するファイルのサンプルテキストの40文字は次のとおりです。
ღ ❂ ◕ ⊕ Θ o O ♋ ☯ ⊙ ◎ ๑ ☜ ☞ ♨ ☎ ☏ ۩ ۞ ♬ ✖ ɔ ½ ' ‿ ' * ᴗ * ◕ ‿ ◕ ❊ ᴗ ❊ . ᴗ . ᵒ ᴗ
これにはいくつかの重複項目しかありませんが、sort
コマンドがテキストを処理するのに少し問題がありますが、何も失われず、両方ともまったく同じ出力をsort -u
持つため、uniq
11個に減り、多くの文字が削除されます。
答え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