我有一个具有以下输出的程序:
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"
我需要我的终端显示固定到位的包位置(每次打印新包时都在同一行),同时括号内的数据正在发生变化。
我不介意终端上同时有多个输出包,但我需要将它们固定在适当位置并且不在行间跳来跳去,以便我可以在运行程序时读取它们。
有没有办法在终端上确保这一点?
我尝试了以下解决方案:
- 减慢终端的打印速度:
./out | watch -n 1 cat
这并不能解决问题。我想要的不是屏幕上数据流变慢,我不希望它在终端上上下移动。这可以让它移动,但速度较慢。
- 使用 grep 匹配
flag
并打印N
以下行:./out | grep -AN flag
这也不能解决问题,我的猜测是它从终端底部附加行,并将文本向上推,并且一次执行一行。而您最终看到的是屏幕上的一片混乱。
谢谢!