超言理論

特に益もない日記である

大容量のファイルをソートしたい

例えば外付けのHDDに入っている大容量のファイル(ここでは内部のHDDにはこのファイルは入らない容量とする)を普通にソートするとtmp(テンポラリー:一時ファイル)にデータが入りきらなくてソートが途中で終了してしまいます。

ので、以下のようにしてテンポラリーにするフォルダを外部のHDDに変えるとうまくいきます。

$ sort -T /mount/tmp/ /mount/target.txt > /mount/result.txt

あと、大容量のファイルをそのままソートするととても長い時間がかかるので、以下のように環境変数を弄っておくと処理が早くなる(ただし、一部のソート結果は変わることがある)。

$ env LC_ALL=C sort target > result

LC_ALL=Cというのは言語環境(ロケール)をCロケールにしましょう、という設定をしていて、不勉強なせいで私にはよくわからなかったのですが、とりあえず結果的にソートが早くなる様子。


Copyright © 2012-2016 Masahiro MIZUKAMI All Rights Reserved.