
다음과 같은 출력을 갖는 프로그램이 있습니다.
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
이것은 문제도 해결하지 못합니다. 제 생각에는 터미널 하단에서 줄을 추가하고 텍스트를 위로 밀어 올려 한 번에 한 줄씩 수행하는 것 같습니다. 그리고 당신이 보게 되는 것은 화면의 스크램블입니다.
감사해요!