2012-05-04 30 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