如何使用连续文本保持刷新屏幕

loc*_*ost 0 bash terminal ubuntu

我正在尝试使用保持输出格式化文本的程序进行调试,例如:

r/c 0123456789ABCDEF
00: 0000011100000000
01: 0000011100000000
02: 0000011100000000
03: 0000011100000000
04: 0000011100000000
05: 0000011100000000
06: 0000011100000000
07: 0000000000000000
08: 0001000000000000
09: 0000000000000000
0A: 0000000000000000
0B: 0000000000000000
0C: 0000000000000000
0D: 0011000000000000

r/c 0123456789ABCDEF
00: 0000011100000000
01: 0000011100000000
02: 0000011100000000
03: 0000011100000000
04: 0000011100000000
05: 0000011100000000
06: 0000011100000000
07: 0000000000000000
08: 0001000000000000
09: 0000000000000000
0A: 0000000000000000
0B: 0000000000000000
0C: 0000000000000000
0D: 0011000000000000

...etc
Run Code Online (Sandbox Code Playgroud)

它显示了键盘矩阵的输出,所以我想看看数字是如何变化的,因为我按下我正在测试的键盘上的键.

问题是它在控制台上如此快速地飞过,它只是一大堆文本.我想在每个组之间插入一个清晰的屏幕,所以我实际上可以看到我按下的键在矩阵中进行了更改.我正在运行的程序是sudo ./hid_listen.

我希望实时看到这些变化,好像我把这个输出管道传输到一个文件中,很难用数千行文字来判断我按下某个特定键的确切位置.我认为这样的东西top会不断刷新,但当然要简单得多.

anu*_*ava 5

您可以将命令传递给awk以在每次出现空行时强制屏幕清除(开始新组):

sudo ./hid_listen | awk '/^$/{system("clear")} 1'
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用此命令在clear每个时间r/c行到来时插入命令:

sudo ./hid_listen | awk '/^r\/c /{system("clear")} 1'
Run Code Online (Sandbox Code Playgroud)