Pular a rolagem no PuTTY?

1

Eu tenho um arquivo que contém muitas linhas, como 1 milhão de linhas, e cat the_file leva muito tempo para rolar.

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

Como tornar isso mais rápido? Como a opção jumpScroll do xterm ou do urxvt?

Estou usando o PuTTY 0.62 e o Windows 8 CP. Se o Windows 7 for necessário, posso mudar.


Aqui está o código que usei para gerar o arquivo:

#include <stdio.h>

int
main(void) {
        int i;
        for (i = 2; i < 999999; i++) {
                printf("%d\n", i);
        }
        return 0;
}
    
por Mengdi Gao 15.03.2012 / 04:20

2 respostas

1

Você não pode. É por isso que não devemos logar a stdout de nossos loops internos.

O registro significativo pode ser implementado com operações de módulo, mas recebo de seus comentários que você está perguntando se você pode acelerar a compactação.

Imprimir para stdout é visualizar o arquivo, em essência. Escrevendo "cego" para um arquivo será muito mais rápido, mas desta vez a sua experiência é bastante constante.

    
por 15.03.2012 / 06:37
0

1. Use um programa que suporte Jumpscroll

Por exemplo O SecureCRT do software Vandyke possui alguns recursos de som semelhantes.

2. Escolha uma solução melhor para os objetivos

Nunca é sensato querer que um humano leia 1000000 linhas de texto em menos de 38 segundos. Você provavelmente quer:

  • Um indicador visível do progresso em andamento (indicando que o programa ainda está funcionando)
  • Acesso às últimas 20 linhas de texto, caso o programa pareça ter sido pausado ou interrompido.

Normalmente, é suficiente apenas redirecionar a saída para um arquivo. Você pode monitorar o tamanho do arquivo para ver se ele está crescendo ou estático.

Se necessário, eu escreveria um pequeno script que lê linhas de STDIN, escreve pontos em STDOUT (por exemplo, um ponto por n linhas ou um ponto se houver entrada em STDIN no último 1 / n de segundo) e mantém as últimas 20 linhas para exibição sob alguma circunstância (EOF, recebimento de um sinal, etc)

    
por 15.03.2012 / 12:06