大きな圧縮CSVファイルを複数の小さなgzipファイルに分割し、行の境界で分割したいと思います。
LINEをしばらく読んでgunzipをbashスクリプトにパイプしようとしています。そのスクリプトは、バックグラウンドのgzipプロセスがそれを再圧縮している名前付きパイプに書き込みます。X文字を読み取るたびに、FDを閉じて、次の分割のために新しいgzipプロセスを再開します。
ただし、このシナリオでは、LINEの読み取り中にスクリプトがCPUの90%を消費します。これは、読み取りが非常に非効率的であるためです(一度に1文字を読み取るためにシステムコールを実行することを理解しています)。
これを効率的に行うことについて何か考えはありますか?gzipが大部分のCPUを消費すると思います。