如何加倍烟斗

how to double pipe candump

当使用 candump 读取 can 总线时:

$ candump can0

如果我 grep 一次:

$ candump can0 | grep <whatever>

完美运行:

  $ candump can0 | grep 1A8           
  can0  1A8   [8]  3C 53 C5 FF 0D C3 3A 01
  can0  1A8   [8]  3C 53 C5 FF 0D C3 3A 01

如果我尝试 grep 两次:

candump can0 | grep 1A8 | grep 1A8

它returns没什么...

Ps :可以通过使用这个来解决(candump can0,<whatever>,7ff | grep <whatever> 但它只适用于那种精确的情况)

编辑:为清楚起见,如果我对相同的内容进行 grep 两次,它仍然无法正常工作

问题不是来自 candump,而是来自缓冲输出的 grep

您可以找到对此行为的很好解释 here