在压缩文件的同时将文本流式传输到文件中

在压缩文件的同时将文本流式传输到文件中

我有一个连接到 Raspberry Pi 的 Arduino Nano,它将文本数据(GY-91 传感器的输出)传输到 Raspberry Pi 上的监听器。

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

接收程序是一个小cpp程序,它只是将数据转发到cout。

./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 中断它,存档将无法正确关闭。

相关内容