结合tail-F和json
我的日志文件每行有一个json对象。 我使用[json][1]通过结合tail-F和json,json,tail,Json,Tail,我的日志文件每行有一个json对象。 我使用[json][1]通过 cat mylog.log | json -a field1 field2 现在我想要 tail -F mylog.log | json -a field1 field2 用于连续输出。但这似乎不是 工作时,外壳只是挂起。如果我使用&来 避免缓冲问题,输出就像 我只运行cat mylog.log如下所示: {"field1": entry1a, "field2": entry2a, "field3": entry3a} {"
cat mylog.log | json -a field1 field2
现在我想要
tail -F mylog.log | json -a field1 field2
用于连续输出。但这似乎不是
工作时,外壳只是挂起。如果我使用&
来
避免缓冲问题,输出就像
我只运行cat
mylog.log
如下所示:
{"field1": entry1a, "field2": entry2a, "field3": entry3a}
{"field1": entry1b, "field2": entry2b, "field3": entry3b}
tail -F mylog.log | while read line; do echo "$line" | json -a field1 field2; done
有什么建议吗
[1] 它看起来像是
json
,但是您应该仍然能够通过为添加到日志文件的每一行调用它来实现流处理,如下所示:
{"field1": entry1a, "field2": entry2a, "field3": entry3a}
{"field1": entry1b, "field2": entry2b, "field3": entry3b}
tail -F mylog.log | while read line; do echo "$line" | json -a field1 field2; done
&
?这是什么类型的shell?zsh
,但我认为它并没有达到我想象的效果……你可能想看看我有一些带有转义反斜杠的json-class:“path\\to\\class”。为了保留这些,我必须将read语句更改为read-r行,这样可以保留它们