bash – 管道尾部输出虽然grep两次
发布时间:2020-12-15 18:50:24 所属栏目:安全 来源:网络整理
导读:使用典型的Apache访问日志,您可以运行: tail -f access_log | grep "127.0.0.1" 哪些只会显示指定IP地址的日志(创建时). 但是,为什么在第二次通过grep管道时会失败,以进一步限制结果? 例如,“.css”的简单排除: tail -f access_log | grep "127.0.0.1" |
使用典型的Apache访问日志,您可以运行:
tail -f access_log | grep "127.0.0.1" 哪些只会显示指定IP地址的日志(创建时). 但是,为什么在第二次通过grep管道时会失败,以进一步限制结果? 例如,“.css”的简单排除: tail -f access_log | grep "127.0.0.1" | grep -v ".css" 不会显示任何输出.
我相信这里的问题是第一个grep正在缓冲输出,这意味着第二个grep将不会看到它,直到缓冲区被刷新.
尝试在您的第一个grep上添加–line-buffered选项: tail -f access_log | grep --line-buffered "127.0.0.1" | grep -v ".css" 有关更多信息,请参阅“BashFAQ/009 — What is buffering? Or,why does my command line produce no output: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |