为什么两次使用grep时都没有显示输出?
|
基本上,我想知道为什么它不输出任何内容:
tail --follow=name file.txt | grep something | grep something_else
您可以假设它应该产生输出,我已经运行另一行来确认
cat file.txt | grep something | grep something_else
似乎您无法多次传送尾巴的输出!有人知道这笔交易是什么,有解决方案吗?
编辑:
到目前为止,要回答这些问题,该文件肯定具有应由grep显示的内容。作为grep是否这样做的证据:
tail --follow=name file.txt | grep something
输出正确显示,但是如果使用它代替:
tail --follow=name file.txt | grep something | grep something
没有输出显示。
如果真的有帮助,我正在运行ubuntu 10.04
没有找到相关结果
已邀请:
5 个回复
漂汀拦
因为grep会缓冲自己的输出。 对grep使用--line-buffered开关可解决此问题:
如果您希望尽快将以下结果放入output.txt文件中,这将很有用。
碉罕城爸
有问题的是带有“ 7”的文件的以下内容。 出于我的目的,我找到了解决方法,我打算将第一个grep的输出捕获到文件中,因此命令如下:
一种解决方法是使用
命令,如下所示:
脚本捕获命令的输出并将其写入文件,从而避免了第二条管道。 对于我来说,这有效地解决了该问题,并且我已经解释了为什么该命令没有按我预期的那样工作,问题得以解决。 仅供参考,这些其他stackoverflow问题相关: 诱使应用程序认为其标准输入是交互式的,而不是管道 强制使用Python取消缓冲另一个程序的标准输出
闪脖
版本已成为过去。尝试ѭ13从文件开头开始。
扦帽次杏
搜洼挂时