2014-02-15 55 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