multitail有一个很好的基于正则表达式的过滤机制,在手册和在线手册中都有描述。这两个源都声明可以使用-ev开关将匹配给定正则表达式的日志行排除在输出之外:
multitail -ev "ignorelinescontainingthis" /var/log/whatever.log -ev "alsoignorethis" /var/log/another.log然而,这似乎不适用于过滤使用通配符传递的许多日志文件:
multitail -ev "thisdoesntwork" /var/log/myservice*.log有办法让这件事起作用吗?
出于分析目的,我尝试了-ec开关(它突出显示regex匹配),结果发现筛选器只应用于通配符列表中的第一个文件,而没有应用于其他文件。
发布于 2019-11-29 15:36:24
把我的评论变成回答。
的手册页multitail将-e选项定义如下:
-e对以下文件使用下一个正则表达式。
因此,正则表达式筛选器仅适用于以下文件。当使用shell globs时,这将导致只将筛选器应用于展开文件列表中的第一个文件。
要在所有文件中应用正则表达式筛选器,必须使用-E选项:
-E对以下文件使用下一个正则表达式。
-v选项否定指定的正则表达式,应该以相同的方式处理这些选项。
https://unix.stackexchange.com/questions/554627
复制相似问题