水平对齐的终端输出

水平对齐的终端输出

我有一个具有以下输出的程序:

Pack 1:  
TimeStamp : 1001302  
Data : [1 21 343 2 34 ]  
Found : Yes  
Pack 2:  
TimeStamp : 1001303  
Data : [1 21 344 2 35 ]  
Found : Yes  
Pack 3:  
TimeStamp : 1001304  
Data : [1 21 346 2 36 ]  
Found : Yes  

等等...重复

终端的输出是使用 c++ 创建的fprintf"\n"我需要我的终端显示固定到位的包位置(每次打印新包时都在同一行),同时括号内的数据正在发生变化。

我不介意终端上同时有多个输出包,但我需要将它们固定在适当位置并且不在行间跳来跳去,以便我可以在运行程序时读取它们。

有没有办法在终端上确保这一点?

我尝试了以下解决方案:

  1. 减慢终端的打印速度: ./out | watch -n 1 cat

这并不能解决问题。我想要的不是屏幕上数据流变慢,我不希望它在终端上上下移动。这可以让它移动,但速度较慢。

  1. 使用 grep 匹配flag并打印N以下行: ./out | grep -AN flag

这也不能解决问题,我的猜测是它从终端底部附加行,并将文本向上推,并且一次执行一行。而您最终看到的是屏幕上的一片混乱。

谢谢!

相关内容