水平に整列した端末出力

水平に整列した端末出力

次のような出力を持つプログラムがあります。

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 を使用して a を一致させflagNその後の行を出力します。 ./out | grep -AN flag

これも問題は解決しません。私の推測では、端末の下部から行を追加し、テキストを押し上げて、それを 1 行ずつ実行しているのではないかと思います。その結果、画面に混乱した表示が現れることになります。

ありがとう!

関連情報