2011-08-16 9 views
0

私はたくさんのファイルを持っています。例えば1000ファイル、それぞれ4MBです。完全に4GBです。 INPUT_UNSORTED 1000個のファイルを追加することによって作成された大きなファイルであるUNIXのソート中にディスクの使用を最小限にする

sort -t ',' -k 1,1 -k 5,7 -k 22,22 -k 2,2r INPUT_UNSORTED_${current_time}.DAT -o INPUT_SORTED_${current_time}.DAT 

:私はUnixのソートを使用してそれらをソートしたいと思い、ここに私のコマンドです。したがって、もう4GBがあります。 INPUT_SORTEDも4GBです。

私はUNIXソートがファイルをソートするために一時フォルダを使用したことを発見しました。また、一時ファイルも4GBに達することがあります。

パフォーマンスを落とさずにディスクの使用量を減らすにはどうすればよいですか?

+1

たぶん、あなたはあなたの1000個のファイルをCONCATが、「並べ替え」を別々にそれらを与えるべきではありません。http://stackoverflow.com/questions/3581215/in-unix-is-it-better-to-sort-multiple-small -files-or-one-big-file – Thilo

答えて

2

大きなソートされた出力ファイルを1つ取得することを目標にしていますか?ソートの--mergeオプションを見てください。小さな入力ファイルを個別にソートしてから、大規模なソート出力にマージすることができます。ソートされていない入力ファイルを並べ替えた直後に削除すると、中間結果には4MB以上のスペースは使用されません。

+0

私の最終的な目標は、大きな出力を4MBの小さなファイルに分割することです。エラーが発生して入力ファイルが失われる可能性があるので、入力ファイルをすぐに削除したくない。 – lamwaiman1988

+0

あなたはそれが入力ファイルを削除する前に成功したかどうかを確認するために、 'sort'の終了ステータスを確認することができ、それが失敗した場合は、データを失うことはありません。そして、私はあなたがそれらを一緒にソートしたいので、「ツチブタ」が含まれてinput99'ファイル '場合、それはoutput1'、ないoutput99'' 'の先頭に行くように、あなたは、一緒にすべてのファイルを結合していることを前提としています。そうしないとあなただけ個別にそれぞれ4MBのファイルを並べ替えることができます。 – Wyzard

関連する問題