总结 :有没有一种方法可以比使用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] 举报,一经查实,本站将立刻删除。