我想发出声音,因为日志文件中有任何异常。
我正在使用bash脚本。
但不幸的是,当尾部用于与sed组合使用时,它不起作用。
我已尝试使用以下命令并在此处发布。
tail -f mylogs.log | grep "Exception" | sed -e $'s/Exception/Exception\a/'
tail -f mylogs.log | sed -e $'s/Exception/Exception\a/'
tail -f mylogs.log | grep "Exception" | sed -e $'s/Exception/Exception\a/'
答案 0 :(得分:28)
问题是grep
看到它没有写入终端,所以它缓冲了它的输出,最终编写了sed
可以同时处理所有内容的大块。要告诉它一旦可用就打印出来,请使用--line-buffered
选项:
tail -f mylogs.log \
| grep --line-buffered Exception \
| sed -u -e $'s/Exception/Exception\a/'
(请注意,我还将-u
标记添加到sed
,这类似于grep
的{{1}}选项。在我的测试中,它没有似乎对这个命令有所作为,但我认为最好包括它以防万一。)