在完成输入(如文件)后,我们可以这样做:
cat file | grep -o memory=[3-9] | sort -u
但sort
不适用于流:
tail -f server.log | grep -o memory=[3-9] | sort -u
server.log
可以是无限流(实时日志)。以上命令可以持续数小时。
如何聚合结果,将另一个工具添加到管道中,或者以某种方式使其sort
起作用?
或者:
有什么替代方法,而不是grep
,在那里进行 grepping,但也将参数传递到下一步 - 管道的下一个工具。我不确定管道是否会允许这样做。
也许管道的第二部分必须是一个组合(就像一次做 grep+sort 的东西)
我只对命令行方法感兴趣。
它可能类似于watch
,但会更新先前的结果。
例如:而不是看到很多行,例如:
memory=4
memory=4
memory=4
memory=4
memory=2
...
我只想看看:
memory=4
memory=2
上面的输出是简化的,我想强调这种输出的聚合是我的主要问题。
工作解决方案是:
然后