圧縮中にテキストをファイルにストリーミング

圧縮中にテキストをファイルにストリーミング

私はRaspberry Piのリスナーにテキストデータ(GY-91センサーの出力)を送信するRaspberry PiにArduino Nanoを接続しました。

P: 974.044 | T: 22.65 | AG: -0.17  -0.10   1.01 | GD:    1.16     0.91     0.98 | MT:  -59.0    94.4   105.1
P: 974.044 | T: 22.65 | AG: -0.17  -0.10   1.00 | GD:    1.34     0.85     1.04 | MT:  -58.3    94.7   105.1
P: 974.066 | T: 22.64 | AG: -0.17  -0.10   1.00 | GD:    0.98     1.10     1.04 | MT:  -58.5    94.9   104.2
P: 974.066 | T: 22.64 | AG: -0.17  -0.10   1.01 | GD:    0.98     0.85     1.16 | MT:  -59.2    94.2   104.2

受信プログラムは、データをcoutに渡す小さなcppプログラムです。

./a.out > log.txtセンサーデータをlog.txtファイルにダンプできます。

サンプリングレートは毎秒約50ジュール(センサー全体の読み取り値50回)で、この記録を約12時間実行したいと思います。言うまでもなく、これは比較的大きなログファイルを生成します。

このデータをログファイルに書き込む前に、どのように動的に圧縮できますか?

そうだが、うまくa.out | gzip > log.txtいかない。

理想的には、Windowsコンピュータにダウンロードしてプログラムを使用して「圧縮解除」することができますが、いくつかのcygwinツールを使用することも可能です。


私は、データに最適な集計/要約/分析を決定するためにさまざまなアルゴリズムを実行できるように、このようなログファイルを作成する予定です。

ベストアンサー1

次のように試すことができます。

./a.out | gzip -c - > log.gz

7-zipで解凍できますが、アーカイブの破損を防ぐために、プログラムにタイマーを実装する必要があります。 Ctrl-Cで中断すると、アーカイブは正しく閉じられません。

おすすめ記事