我可以在日志后面添加-f并仅打印与某些文本匹配的某些行吗?

时间:2018-10-13 21:37:15

标签: bash grep

我想尾随日志,找到一些文本,仅输出找到的行和下一行,这有可能吗?

THE QUICK 
BROWN FOX 
JUMPED OVER
THE LAZY 
DOG'S BACK

类似: 尾巴-f | grep布朗狐狸

输出为:

BROWN FOX 
JUMPED OVER

2 个答案:

答案 0 :(得分:2)

tail -<num1> filename.log | grep "search_string" -A num2

示例 文件:a.log

10 20
10 12
11 14


tail -2 a.log | grep "10" -A 1 # tail -2 indicates two lines from the end of the file


输出

10 12
11 14

Grep选项
在grep中使用-n 选项来打印行号
使用-C num选项可获取前后上下文(与匹配行相邻的行)
使用-A num选项可获取尾随的行数 使用-B num选项可获取前导行数

答案 1 :(得分:2)

 tail -f log_file_name | grep --line-buffered -A1 BROWN FOX

--line-buffered使grep对管道输入做出更迅速的响应(如果日志文件增长缓慢,则非常有用)

-A1要求它在每次比赛后也显示一行。