小さなテキスト ファイルからは重複エントリを削除できますが、大きなテキスト ファイルからは削除できません。
4MBのファイルがあります。
ファイルの先頭は次のようになります。
aa
aah
aahed
aahed
aahing
aahing
aahs
aahs
aal
aalii
aalii
aaliis
aaliis
...
重複を削除したい。
たとえば、「aahed」は 2 回表示されますが、1 回だけ表示されるようにしたいと考えています。
私が試したワンライナーに関係なく、大きなリストは変わりません。
次のように入力した場合:
sort big_list.txt | ユニーク | 私が見るより少ない
:
aa
aah
aahed
aahed <-- didn't get rid of it
aahing
aahing <-- didn't get rid of it
aahs
aahs <-- didn't get rid of it
aal
...
ただし、このテキスト ファイルの先頭から単語の小さなチャンクをコピーし、データの小さなチャンクに対してコマンドを再実行すると、期待どおりの結果が得られます。
これらのプログラムは、ファイルが大きすぎるためにソートを拒否していますか? 私は4MBが非常に大きいとは思いませんでした。警告などは出力しません。
私はすぐに独自の「uniq」プログラムを作成しましたが、同じ動作をします。リストの小さなサブセットで動作しますが、4MB のテキスト ファイルには何もしません。私の問題は何ですか?
編集: ここに16進ダンプがあります:
00000000 61 61 0a 61 61 68 0a 61 61 68 65 64 0a 61 61 68 |aa.aah.aahed.aah|
00000010 65 64 0d 0a 61 61 68 69 6e 67 0a 61 61 68 69 6e |ed..aahing.aahin|
00000020 67 0d 0a 61 61 68 73 0a 61 61 68 73 0d 0a 61 61 |g..aahs.aahs..aa|
00000030 6c 0a 61 61 6c 69 69 0a 61 61 6c 69 69 0d 0a 61 |l.aalii.aalii..a|
00000040 61 6c 69 69 73 0a 61 61 6c 69 69 73 0d 0a 61 61 |aliis.aaliis..aa|
61 61 68 65 64 0a
a a h e d \r
61 61 68 65 64 0d
a a h e d \n
解決済み: 異なる行区切り文字