2014-02-15 32 views
0

我使用的持续输出格式的文本,如程序试图调试:如何保持清爽的屏幕,连续的文本

r/cABCDEF 
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/cABCDEF 
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 

它显示从键盘矩阵的输出,所以我想看看当我按下我正在测试的键盘上的按键时数字如何变化。

的问题是,它在控制台上过得这么快,它是文本的只是一个大的混乱。我想在每个组之间插入一个清晰的屏幕,这样我就可以真正看到我按下的按键在矩阵中进行更改。我正在运行的程序是sudo ./hid_listen

我希望看到实时的变化,如果我管这个输出到一个文件中,这是很难说有成千上万的文本行到底在哪这就是我被按下特定的键。我在想像top这样的东西不断提神,但当然要简单得多。

回答

1

找到它自己,

sudo ./hid_listen | sed -e 's/^$/'$(echo -en "\033c")'/' 

大概终端特有的,但它为我工作。 echo -en "\033c变成ESC-c,清除屏幕。尽管我没有尝试过,但anubhava的答案看起来像我一直在寻找的东西。

+1

您可能会发现“tput的清晰”也适用。 –

5

可以通过管道将您的命令awk来强制画面清晰,每次一个空行显示了(一组新的开始):

sudo ./hid_listen | awk '/^$/{system("clear")} 1' 

或者你可以使用这个命令插入clear命令每次r/c全系标配:

sudo ./hid_listen | awk '/^r\/c /{system("clear")} 1' 
+0

pardon..what没有你的答案究竟做什么? – MLSC

+0

它插入每次有在OP的输出一个空行时间'clear'命令。 – anubhava

+1

非常感谢你 – MLSC

0

,因为它是完全基于@anubhava的优秀建议,请不要接受这个作为你的答案。我只是认为它可以帮助你,因为你说有数以千计的混乱文字。

它基本上是一样的他,除了它记住看到的最后一行(变量“X”),当它改变只打印输出- 让您拥有更小的东西要涉水通过:

yourcommand | awk -F: '/^r\/c /{system("clear");print $0;x=""}$2!=x{print $0;x=$2}' 

输出:

r/cABCDEF 
00: 0000011100000000 
07: 0000000000000000 
08: 0001000000000000 
09: 0000000000000000 
0D: 0011000000000000