【发布时间】:2012-03-25 10:39:10
【问题描述】:
我有以下脚本可以解析一些 |分隔的字段/值对。样本数据看起来像 |苹果=32.23|香蕉=1232.12|葡萄=12312|梨=231|葡萄=1231|
我只是想计算 A、B 或 C 字段名称在日志文件中出现的次数。字段列表需要是动态的。日志文件“大”,每个大约 500 兆,因此对每个文件进行排序需要一段时间。进行剪切并获得每行一个字段的文件后,是否有更快的方法来进行计数?
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1 | sort | uniq -c > /data/logs/$dir/$file.txt.count
我知道这部分运行速度很快。我可以肯定地看到它陷入了困境。
cat /bb/logs/$dir/$file.txt | tr -s "|" "\n" | cut -d "=" -f 1
在我运行剪切后,下面是一个示例输出,当然文件要长得多
Apple
Banana
Grape
Pear
Grape
排序和计数后我得到
1 Apple
1 Banana
1 Pear
2 Grape
问题是我的实际数据的排序时间太长了。我认为 > 将剪切输出到文件会更快,但不确定计算“大”文本文件中唯一条目的最快方法
【问题讨论】:
-
发布一些示例数据和您想要的 o/p
-
好吧.. 应该没问题
-
比
cat file | sort快的是sort file。