• 締切済み

サイズの大きなテキストファイルのSORT

3GB超のテキストファイルをSORTコマンドでソートしたいのですが、空(0KB)の出力ファイルが出来て処理が終わってしまいます。 数KB~数MBのテキストでは正常にソートされるのですが、GB単位になると上記の現象が発生します。 環境はWindowsNTServer4.0です。 ソートできるファイルサイズの上限、ディスクの空き容量等、制限があるのでしょうか? また、上記の現象を回避し、正常にソートする方法をご存知な方がいらっしゃいましたら、どうぞご教授ください。 宜しくお願い致します。 ↓ソートコマンドは至ってシンプルです。 sort /+1 < TEST.dat > OUT.txt

みんなの回答

noname#65902
noname#65902
回答No.2

ANo.1 です。書き忘れてました。 SORT コマンドでは、扱うファイルにサイズ制限はない、 との事です。 http://www.microsoft.com/technet/prodtechnol/windowsserver2003/ja/library/ServerHelp/58617202-cd86-425c-99ac-0589c083e4af.mspx?mfr=true

shun10
質問者

お礼

1GB程度のファイルでソートを試したところ、「メモリが不足しています」というメッセージが 表示されて処理が落ちたので、結局はそれが原因だったようです。 代替策で回避することにしました。 ご回答いただきありがとうございました。

shun10
質問者

補足

早速のご回答ありがとうございます。 確かにソートが実行中であれば、出力ファイルはプロセスに掴まれているので削除できないはずなのですが、削除できてしまいます。 ただし、書き込み開始自体に時間が掛かっている可能性もありますので、ソートを実行してから時間を置いてみる、というのを試してみたいと思います。 参考URLありがとうございます。 ちなみにWindows2000で実行したら、同じ3GBのテキストファイルが正常にソートされました…。

noname#65902
noname#65902
回答No.1

回答になってないのですが。 遅延書き込みか何かで、コマンド自体は完了してても ファイル書き込みが完了してない...って可能性があるかなと 思いました。 3GBのファイルを扱うとなると、一時ファイルから書き戻すのも 結構時間かかると思われますし... もう少し待ってみるか、削除しようとすれば「使用中です」と警告されることで 判断できるように思いますが、いかがでしょうか。

関連するQ&A