在 PuTTY 中跳跃滚动?

在 PuTTY 中跳跃滚动?

我有一个文件包含很多行,比如 100 万行,并且cat the_file滚动需要花费太多时间。

$ time cat 1m
......
cat 1m  0.00s user 11.21s system 28% cpu 38.839 total

如何让它更快?比如 xterm 或 urxvt 的 jumpScroll 选项?

我使用的是 PuTTY 0.62 和 Windows 8 CP,如果需要 Windows 7,我可以更改。


这是我用来生成文件的代码:

#include <stdio.h>

int
main(void) {
        int i;
        for (i = 2; i < 999999; i++) {
                printf("%d\n", i);
        }
        return 0;
}

答案1

你不能。这就是为什么我们不应该从内部循环将日志记录到 stdout。

有意义的日志记录可以通过模数运算来实现,但我从您的评论中得知,您询问的是是否可以加快腻子的速度。

打印到 stdout 本质上就是查看文件。将数据“盲目”地写入文件会快得多,但您体验到的这种时间滞后相当恒定。

答案2

1. 使用支持 Jumpscroll 的程序

例如 Vandyke 软件的 SecureCRT 具有一些类似的功能。

2. 为目标选择更好的解决方案

让一个人在 38 秒内阅读 1000000 行文本是绝对不合理的。你可能想要:

  • 持续进展的可见指标(表明该计划仍在进行中)
  • 如果程序似乎已暂停或停止,则访问最后 20 行左右的文本。

通常只需将输出重定向到文件即可。您可以监视文件的大小以查看它是在增长还是静止。

如果有必要,我会编写一个小脚本,从 STDIN 读取行,将点写入 STDOUT(例如,每 n 行一个点,或者如果在过去 1/n 秒内在 STDIN 上有输入,则写入一个点)并保留最后 20 行以便在某些情况下显示(EOF、收到信号等)

相关内容