拖尾日志文件,仅显示特定值

时间:2013-11-06 10:53:10

标签: regex shell unix tail

我正在使用

拖尾日志
tail -f my_log_file

日志文件中添加的每一行如下所示:

blaaa blaaa something blaa blaa response_time 100ms blaa blaaaaa
blaaa blaaa something blaa blaa response_time 150ms blaa blaaaaa
blaaa blaaa something blaa blaa response_time 90ms blaa blaaaaa

我真正想要的是能够拖尾这个日志文件,但只显示

response_time 100ms
response_time 150ms
response_time 90ms

有没有办法用“尾巴”做到这一点? 谢谢!

3 个答案:

答案 0 :(得分:1)

您可以管道tailsedgrep的输出来过滤它。尝试:

tail -f my_log_file | sed -e 's/.*\(response_time \S\+\).*/\1/p'

答案 1 :(得分:1)

这应该适合你:

tail -f my_log_file | grep -o 'response_time [0-9]+ms'

答案 2 :(得分:0)

sed -u 's/.* \(response_time [0-9]\{1,\}ms\) .*/\1/" my_log_file

-u是输入/输出的流版本。 工作直到第一个EOF (因此使用echo >> my_log_file的脚本添加到文件末尾但每个操作都有一个EOF,因此停止sed,tail将等待来自外部的中断)