Bash 如何在每条日志行上运行jq并跟踪它?

Bash 如何在每条日志行上运行jq并跟踪它?,bash,less,jq,Bash,Less,Jq,我有一个日志文件,每一行都是一个json对象。我希望将日志行视为漂亮的json,同时能够跟踪日志,可能使用tail或更少。 我尝试了以下方法,它们要么立即返回,即不跟踪日志,要么通过不返回而显示为跟踪,但不使用新日志进行更新 less jsonlines.log | jq "." tail -f jsonlines.log | jq "." 为我工作™: 在一个终端窗口中: 虽然真实;执行echo{\date\:\$date\}>>日志文件;睡眠1;完

我有一个日志文件,每一行都是一个json对象。我希望将日志行视为漂亮的json,同时能够跟踪日志,可能使用tail或更少。 我尝试了以下方法,它们要么立即返回,即不跟踪日志,要么通过不返回而显示为跟踪,但不使用新日志进行更新

less jsonlines.log | jq "." 
tail -f jsonlines.log | jq "."
为我工作™:

在一个终端窗口中:

虽然真实;执行echo{\date\:\$date\}>>日志文件;睡眠1;完成 另一方面:

tail-f日志文件| jq。 为我工作™:

在一个终端窗口中:

虽然真实;执行echo{\date\:\$date\}>>日志文件;睡眠1;完成 另一方面:

tail-f日志文件| jq。
你说得对,它确实有效。不知道为什么我会有不同的想法。谢谢@sgarg-您可能仍然希望使用带有-unbuffered选项的jq。@peak,这是一个社区wiki回答:我们鼓励您改进它。您是对的,它确实有效。不知道为什么我会有不同的想法。谢谢@sgarg-您可能仍然希望使用带有-unbuffered选项的jq。@peak,这是一个社区wiki答案:我们鼓励您改进它。