【发布时间】:2015-10-31 05:01:28
【问题描述】:
这是我的示例日志文件。http://pastebin.com/DwWeFhJk。
当我在做的时候
tail -f log | awk '{if (NF>3) {print $1}; }'
我得到的结果是正确的
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
64.242.88.10
但是当我在做的时候:
tail -f log |
awk '{if (NF>3) {print $1}; }' |
awk '{print $1}'
我没有得到任何输出。即使在
的情况下也没有输出tail -f log | awk '{if (NF>3) {print $1}; }' | grep "64"
我不明白为什么第一个awk 的输出没有作为第二个awk/grep 在管道之后的输入传递。
【问题讨论】:
-
命令
tail -f log | awk '{if (NF>3) {print $1}; }' | grep "64"给我的输出与上面显示的相同。你确定它没有给你输出吗?如果不是,您使用的是什么操作系统? -
我不认为这取决于操作系统。无论如何,我正在使用拱门。
-
当操作系统是 solaris 时,awk 问题通常取决于操作系统。相比之下,拱门应该没问题。既然您提到问题发生在
tail -f而不是tail,我相信乔纳森已经确定了最可能的问题。