我经常处理难以置信的大日志文件(> 3 GB)。 我注意到这些文件的性能较差。 通常我想跳到文件的中间,但是当我less说跳到15 M行时,需要几分钟的时间。
我想象的问题是扫描文件'\ n'字符的需求较less,但这需要很长时间。
有没有办法让它只是寻求明确的抵消? 例如在文件中寻找15亿字节的字节偏移量。 这个操作应该快几个数量级。 如果更less不提供这样的能力,是否有另一个工具呢?
你可以减less像这样less -n
要跳转到特定的地方,比如说50%, less -n +50p /some/log这对于我来说是1.5GB的日志文件。
编辑:对于特定的字节偏移量: less -n +500000000P ./blah.log
作为一个传呼机,本质上是线性的。 当你启动时,如果它是一个大文件,它会说“计数行号”,你打ESC停止,但否则,它会行。 它是这样做的。
如果你想直接跳到文件的中间,跳过开始,你总是可以寻找过去的开始; 我会做一些像tail -c +15000000 /some/log | less tail -c +15000000 /some/log | less 。
less似乎从区域设置有小的开销
如果您只使用ASCII字符,则可以使用以下方法加快速度:
LC_ALL=C less big-log-file.log
就我而言,吞吐量从〜30M ib / s增加到〜50 Mib / s(速率受CPU限制)