2012-05-04 53 views
1

有沒有辦法做線緩衝貓?例如,我想觀看一個UART設備,並且我只想在整行時看到它的消息。我可以做一些事情:線緩衝貓

cat --line-buffered /dev/crbif0rb0c0ttyS0 

謝謝。

回答

3

不,但GNU grep與--line-buffered可以做到這一點。只需搜索每一行的內容,如'^'

+0

我試圖'貓的/ dev/crbif0rb0c0ttyS0 | grep。 - 行緩衝「,但只打印空行。如果我用普通文件替換UART設備,那麼就可以。對此有何想法? –

+0

哦,我試過'cat/dev/crbif0rb0c0ttyS0 | grep^--line-buffered',這個工程!不知道爲什麼... –

+0

這個工程,但你能解釋一下嗎?貓的輸出應該被緩衝,因爲它連接到管道。那麼grep的線程緩衝如何讓cat的緩衝區刷新以便讓grep像線路緩衝一樣運行? – Vassilis

2

您也可以使用bash在這裏你的優勢:

cat /dev/crbif0rb0c0ttyS0 | while read line; do echo $line; done 

由於read命令每次讀取一行時,將執行行緩衝是cat沒有。

+0

如果您使用這種方法,則不需要'cat'。 –

1

管它通過在無操作線緩衝模式的Perl:

perl -pe 1 /dev/whatever