Горизонтально выровненный выходной терминал

Горизонтально выровненный выходной терминал

У меня есть программа, которая выводит следующие результаты:

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

Это тоже не решает проблему, я предполагаю, что он добавляет строки из нижней части терминала, а текст выталкивает наверх и делает это по одной строке за раз. И в итоге вы видите на экране какую-то мешанину.

Спасибо!

Связанный контент