ログファイルやCSVなどで数十万行、数百万行になるファイルを解析する必要があるケースが結構あります。
自分で作ったツールで解析する場合、処理時間がかかってしまうのは自分の責任なのでしかたありませんが、解析ツールを指定されるケースのほうが多いと思います。
ツールの設計によってはファイルが大きくなるとメモリを食いつぶし進めば進むほどスピードが低下していつまでたっても終わらないということもあると思います。
そういう時は、解析を始める前に面倒くさがらずにファイルを分割してから処理をしましょう。
ログ等によくある各行同じフォーマットのテキストデータの場合、分割して解析したほうが結果的に短時間ですむ場合が結構あります。
ファイルの分割は以下のコマンドで実現できます。
$ split -l ${LINE_NUM} ${ORIGINAL_FILE} ${OUTPUT_FILE_PREFIX}
-lオプションで指定した行数で分割することを伝え、元ファイル名と出力ファイルの接頭辞を指定で実行すると、接頭辞にアルファベット連番の形の分割ファイルが生成されます。