微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

高效sorting| uniq为大量重复的情况

总结 :有没有一种方法可以比使用sort | uniq -c | sort -n更有效地从文件获取唯一的行和出现次数 sort | uniq -c | sort -n sort | uniq -c | sort -n ?

详情 :我经常用pipe道sort | uniq -c | sort -n sort | uniq -c | sort -n sort | uniq -c | sort -n在进行日志分析时会得到一般的趋势,哪些日志条目显示最多/最less等等。这在大多数情况下都是有效的,除非我处理的是一个非常大的日志文件,重复的次数在这种情况下sort | uniq -c最终花费很长时间)。

示例 :我现在面对的具体情况是从“非参数化”的MysqL bin日志中获取趋势,找出哪些查询运行得最多。 对于通过grep / sed组合来移除参数的一百万个条目的文件(导致大约150条独特的行),我花了大约3秒的时间进行sorting和sorting,以及大约15秒的sorting/sorting。

目前,我已经用一个简单的c ++程序来解决这个问题,该程序保存了<line,count>的地图,它在不到一秒的时间内完成了工作,但是我想知道现有的工具是否已经存在。

如何找出进程正在使用的端口号

search并replacelinux目录的所有文件中的文本

在Shell脚本中声明用户定义的variables(csh shell)

如何在VIM中启用intellisense(gvim)

让Linux shell脚本将一个string填充到Windows用户的复制/粘贴缓冲区中

将stderrredirect到从python exec-ed进程的标准输出

我怎样才能打开顶部的特定行号VIM?

用sed提取子expression式

c()中system()的替代方法在linux上执行一个terminal命令

安装了一个python2.7作为替代,但是认2.6的path被破坏了。 认解释器的系统path文件

我不确定会有什么样的性能差异,但是您可以替换sort | uniq -c sort | uniq -c用一个简单的awk脚本。 既然你有很多重复,而不是排序哈希,我会想象它更快:

awk '{c[$0]++}END{for(l in c){print c[l],l}}' input.txt | sort -n

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐