我正在寻找专为以下设计的经过验证的Linux工具:
1。我有一个重复单词的排序列表,每行一个,1.5 Gb文本文件(6.17亿行)。有大约200个独特的单词,范围从1到<1。长度为20个字符。
我可以&#34;手动压缩&#34;使用uniq -c
获取一个3.4 Kb的文件,当压缩时为1.2 Kb。然后我可以做一个&#34;手动减压&#34;具有简单的awk功能。当然,经过测试,优化,维护,专用的工具更可取,更不容易出错,而且编写自己的代码的时间更有效。
gzip --best
给出了一个1.5Mb的文件,这个特殊问题的压缩比非常差。
bzip2 --best
给出一个62 Kb的压缩文件,这是好的,但显然是次优的压缩率。它需要的时间远远超过简单的uniq -c
。
一个简单的工具,直接实现运行长度编码似乎是最佳的,但我找不到任何标准和可靠的。
2. 我有一个正整数的排序列表,每行一个。每个整数大约在1百万到3亿的范围内。没有算法模式或公式,它们是随机的。但是连续整数之间的差异紧密地分布在0到30左右,尽管有一个尾部。
霍夫曼连续整数差异的编码(或差异的差异)应该给出非常高的压缩比。但我找不到一个简单,专用的排序整数工具。
Another SO answer为这些问题提供了C库的链接,但我正在寻找一个维护的,独立的Linux二进制文件。
这些都是简单的问题,但我没有时间编写自己的代码,调试代码,测试代码,优化代码等等。这是一个较大项目的一小部分。我很惊讶没有针对这些问题的专用Linux实用工具。