15 bash
我想发出声音,因为日志文件中有任何异常.
我正在使用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/'
Run Code Online (Sandbox Code Playgroud)
rua*_*akh 28
问题是grep看到它没有写入终端,所以它缓冲了它的输出,最终编写了sed可以同时处理所有内容的大块.要告诉它在可用时尽快打印出来,请使用以下--line-buffered选项:
tail -f mylogs.log \
| grep --line-buffered Exception \
| sed -u -e $'s/Exception/Exception\a/'
Run Code Online (Sandbox Code Playgroud)
(请注意,我还添加了-u标志sed,这与我grep的--line-buffered选项类似.在我的测试中,它似乎没有对此命令产生影响,但我认为最好包含它以防万一.)