02. 多量のファイルを扱うときのヒント

ファイルだけではなく、行数が数百万とかのとき。いままで出来ていた処理系が破綻をきたします。

どうするか?

    • foreach
    • よく使いますよね。で、foreach展開の元を「変数」に入れて書く方、ハマります。
    • 変数サイズが許容量オーバーするときがあります。じゃあどうするの?
    • foreach tmp ( `xxx` )
    • を使います。一見綺麗じゃない?書き方に思う方もいるかと思いますが、直接UNIX/Linuxコマンドを呼び出すことで、変数の仕様制限から開放されます
    • `ls xxx`が破綻、`grep xxx ...`が破綻
    • 異常なほど大きなプロジェクトで、ある処理を自動化しようとするとき、昔おきました。
    • → 対処法:当時はPerlで逃げました。Perlで system("ls xxx") とかはダメですよ。ちゃんとPerl独自の記述方法を用いましょう。別にRubyでも、awkでも。
    • 問題なのは、大量にメモリー消費してしまうときに起きるので、うまく書けるなら、アイテムの数を管理して、1000個ずつとか(lsの場合)、またまた1000個ずつとか(grepでサーチかけるファイル数)で回避しましょう