tee搞乱了输出文件以实现大输出

时间:2018-12-21 10:10:49

标签: pipe buffer stdout tee

我正在运行一个名为dsk2ascii的程序,该程序读取h5文件并将信息打印为如下所示的文件:

AAAAAAAATTTGAGAAATTGAGAAATTATAT 2
AAAAAAATTTGAGAAATTGAGAAATTATATA 10
AAAAAATTTGTAAATTGTTTTTTAATGACAA 2
AAAAACAGGATAAATTACATCTTTTGGATAA 2

(固定长度,空格和数字的序列)

现在我想将其打印到文件中,但要附加后续调用的结果。因此,我的通话如下:

dsk2ascii -file testsample.h5 -out /dev/stdout |tee - >> outfile

-out /dev/stdout将导致dsk2ascii的输出打印在标准输出上。我必须添加|tee -,因为否则我的outfile每次都会被截断(尽管使用>>

对于42个后续调用,我最终得到一个很大的(600 GB)输出文件。在此输出文件中,99.99%的行完全可以,但是对于某些人,我的结果很混乱。我的序列太短,缺少空格或有其他换行符。

由于输入和输出较大,是否会导致某些缓冲区溢出?如果是,该如何避免呢?

0 个答案:

没有答案