수평으로 정렬된 터미널 출력

수평으로 정렬된 터미널 출력

다음과 같은 출력을 갖는 프로그램이 있습니다.

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와 일치 하고 다음 행을 flag인쇄합니다 .N./out | grep -AN flag

이것은 문제도 해결하지 못합니다. 제 생각에는 터미널 하단에서 줄을 추가하고 텍스트를 위로 밀어 올려 한 번에 한 줄씩 수행하는 것 같습니다. 그리고 당신이 보게 되는 것은 화면의 스크램블입니다.

감사해요!

관련 정보