我用它来检查日志文件的日志行,直到发生特定事件(取自此对Monitoring a file until a string is found 的回答):
(tail -f -n 0 test.log &) | grep -q 'SPEFICIC LOG MESSAGE'
这可行,但我还希望在等待事件时将日志行打印到标准输出。我正在寻找类似的东西tee
,但我想同时打印和管道。
我试过这个对 Pipe 的回答并观察管道输出?, 导致:
(tail -f -n 0 test.log &) | tee /dev/fd/2 | grep -q 'SPEFICIC LOG MESSAGE'
但是随后该命令永远不会退出,大概是因为在找到匹配项时grep
无法中断tail
,因此tail
继续将数据传递给tee
?