为什么两次使用grep时都没有显示输出?
基本上我想知道为什么它什么都不输出:
tail --follow=name file.txt | grep something | grep something_else
您可以假设它应该产生输出,我已经运行另一行来确认
cat file.txt | grep something | grep something_else
看来您不能多次通过管道传递tail的输出!有人知道这笔交易是什么,有解决方案吗?
编辑:到目前为止,要回答问题,该文件肯定具有应由grep显示的内容。作为grep是否这样做的证据:
tail --follow=name file.txt | grep something
输出正确显示,但是如果使用它代替:
tail --follow=name file.txt | grep something | grep something
没有输出显示。
如果真的有帮助,我正在运行ubuntu 10.04
回答:
在管道中时,您可能还会遇到grep缓冲问题。即,您看不到来自的输出
tail --follow=name file.txt | grep something > output.txt
因为grep会缓冲自己的输出。
对grep使用–line-buffered开关可解决此问题:
tail --follow=name file.txt | grep --line-buffered something > output.txt
如果您希望尽快将以下结果放入output.txt文件中,这将很有用。
以上是 为什么两次使用grep时都没有显示输出? 的全部内容, 来源链接: utcz.com/qa/428439.html