将连续流传输到另一个命令

时间:2015-05-18 17:01:10

标签: awk stream pipe tail

我写了一个程序来实时分析日志文件。我需要用IP来提供它。它可以正常使用命令:

cat /var/log/apache2/access.log | awk '{print $1}' | ./my_program

此外,我可以使用以下命令实时获取IP:

tail -f /var/log/apache2/access.log | awk '{print $1}'

当我将它传送到我的程序时,我的程序没有收到任何内容:

tail -f /var/log/apache2/access.log | awk '{print $1}' | ./my_program

这似乎是缓冲的问题。有没有方法连续流程到我的程序?

1 个答案:

答案 0 :(得分:1)

我找到了缓冲问题的最终解决方案here

  

问题是stdio正在被缓冲,......