首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从提取的grep结果中获得唯一性,但以流作为输入

从提取的grep结果中获得唯一性,但以流作为输入
EN

Ask Ubuntu用户
提问于 2019-02-15 10:41:36
回答 1查看 99关注 0票数 0

对于完成的输入(如文件),我们可以这样做:

代码语言:javascript
运行
复制
cat file | grep -o memory=[3-9] | sort -u

但是sort不能处理流:

代码语言:javascript
运行
复制
tail -f server.log | grep -o memory=[3-9] | sort -u

server.log可以是无限流(实时日志)。以上命令可持续数小时。

我如何聚合结果--将另一个工具添加到管道中,或者以某种方式使sort工作?

或:

除了grep之外,还有什么可供选择的方法呢?在此基础上,将参数传递到下一步--管道的下一个工具。我不确定烟斗是否会允许这样做。

也许管道的第二部分必须是一个组合的部分(就像某个东西同时执行grep+sort )。

我只对命令行的方法感兴趣。

它可能类似于watch,但是更新了前面的结果。

例如:与其看到大量的线条,不如:

代码语言:javascript
运行
复制
memory=4
memory=4
memory=4
memory=4
memory=2
...

我只想看到:

代码语言:javascript
运行
复制
memory=4
memory=2

上面的输出是简化的,我想突出强调这样的输出聚合是我的主要问题。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2019-02-15 11:35:19

工作解决办法是:

代码语言:javascript
运行
复制
$ tail -f infinite_server.log | grep -o memory=[3-9] > output &

然后

代码语言:javascript
运行
复制
$ watch "cat output | sort -u"
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1118468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档