tail using Grep:当Grep上有匹配项时,从日志文件中过滤一定数量的行

tail using Grep:当Grep上有匹配项时,从日志文件中过滤一定数量的行,grep,tail,Grep,Tail,比如说,我想使用下面的字符串“xyz”grep一个日志文件 tail-f文件名| grep-vw“xyz” 在本例中,“xyz”是我正在搜索的关键字。这将从日志文件中筛选出与“xyz”匹配的行 当日志文件中有一行匹配关键字“xyz”时,我还想从日志文件中筛选出接下来的10行。我怎样才能做到这一点 请帮忙 您可以使用sed来实现这一点 sed -e '/xyz/,+10d' filename 使用awk的另一种方法是: 我不认为格雷普能独自做到这一点。当你说“过滤掉接下来的10行”时,你的意思

比如说,我想使用下面的字符串“xyz”grep一个日志文件

tail-f文件名| grep-vw“xyz”

在本例中,“xyz”是我正在搜索的关键字。这将从日志文件中筛选出与“xyz”匹配的行

当日志文件中有一行匹配关键字“xyz”时,我还想从日志文件中筛选出接下来的10行。我怎样才能做到这一点


请帮忙

您可以使用sed来实现这一点

sed -e '/xyz/,+10d' filename

使用awk的另一种方法是:


我不认为格雷普能独自做到这一点。当你说“过滤掉接下来的10行”时,你的意思是“忽略接下来的10行,即使它们与'xyz'匹配”?是的,忽略接下来的10行。我认为你需要使用类似于
sed的东西
看起来这个命令正在解析整个日志文件。我不想解析整个日志。我只想看看现在正在记录的新消息。我怎么能这样做?用一条尾巴把它吹干。尾部-f | sed-e'/xyz/,+10d'
tail -f filename | awk 'BEGIN{skip=-1}/xyz/{skip=NR+10}NR>skip{print}'