备份来自Python的管道输出

时间:2019-03-22 19:17:18

标签: bash python jq

我有一个Python程序,可以打印json对象(来自游戏API的间歇消息)。当我自己运行程序时,每条消息都会立即显示在控制台输出中。

$ python myprog.py
{"SG_MSG":{"obj_id":"SD748","aspect":"0","time":"42"}}
{"SG_MSG":{"obj_id":"SD748","aspect":"6","time":"75"}}

但是当我将输出通过管道传输到jq时,jq不会输出任何时间,并且偶尔会发出一堆消息:

$ python myprog.py | jq .

我尝试在每条消息的前面加上记录分隔符(ascii 30),并使用jq --seq .,但结果是相同的。

按{q}手册上的说明,向od输水会显示记录分隔符:

$ python myprog.py | od -t d1
… … … 125 125 10 30 123 … …

是},},LF,RS,{

管道传输到od会显示相同的行为,直到备份一堆消息后才会显示输出。

我猜我在这里忽略了bash的一些基本知识……?

0 个答案:

没有答案