
次のような出力を持つプログラムがあります。
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 を使用して a を一致させ
flag
、N
その後の行を出力します。./out | grep -AN flag
これも問題は解決しません。私の推測では、端末の下部から行を追加し、テキストを押し上げて、それを 1 行ずつ実行しているのではないかと思います。その結果、画面に混乱した表示が現れることになります。
ありがとう!