如何从100mil行*.gz文件返回行间隔?
假设我需要5mil行,从15mil到20mil?
这是性能最好的选项吗?
zcat myfile.gz|head -20000000|tail -500
real 0m43.106s
user 0m43.154s
sys 0m9.259s
这是一个完全合理的选择;由于不知道一行有多长,因此基本上必须解压缩并迭代行,以找出行分隔符的位置。这三个工具都经过了大量优化,所以I/O和解压时间可能会占主导地位。
理论上,将您自己的解决方案将所有三个工具组合在一个可执行文件中可能会节省一点(通过减少IPC的成本),但节省的可能是微不足道的。