【发布时间】:2020-12-22 14:30:34
【问题描述】:
我正在查看 linux 服务器上的大量日志文件。是否有任何命令可以过滤掉(不显示)特定模式? 例如,如果我的日志消息以 A-1111、B-1111、C-1111 等开头。我能否以某种方式过滤以使模式为 A-XXXX 的日志不会显示,但所有其他模式仍然存在?
我对 linux 命令不太了解,谢谢。
【问题讨论】:
标签: linux command-line terminal
我正在查看 linux 服务器上的大量日志文件。是否有任何命令可以过滤掉(不显示)特定模式? 例如,如果我的日志消息以 A-1111、B-1111、C-1111 等开头。我能否以某种方式过滤以使模式为 A-XXXX 的日志不会显示,但所有其他模式仍然存在?
我对 linux 命令不太了解,谢谢。
【问题讨论】:
标签: linux command-line terminal
这就是发明grep 的原因之一。但是,根据您的描述,我无法找出模式的样子:
[A-C]-1111 : letters from A to C, followed by 1111
[A-C]-[0-9][0-9][0-9][0-9] : letters from A to C, followed by four digits
[A-Z]... : letters from A to Z, ...
...
你的第一反应:“这不是我想要的:grep过滤那些表达式并显示它们,而我想要相反,我不想显示它们!”
这可以通过grep 中的-v 标志来解决:
我创建了一个包含以下内容的文件:
A-1111
B-1111
C-1111
A-2222
Whatever
这是grep -v "[A-C]-1111" logfile.log的结果:
A-2222
Whatever
【讨论】:
-v 标志对我来说就足够了,谢谢!